(0) Obligation:

JBC Problem based on JBC Program:
Manifest-Version: 1.0 Created-By: 1.6.0_20 (Apple Inc.) Main-Class: Test5
public class Test5 {
public static void main(String[] args) {
List l1 = List.mk(args.length);
List l2 = List.mk(args.length + 3);
List l3 = List.mk(args.length + 5);
List temp;

while (length(l1) > 0) {
temp = l1;
l1 = l2;
l2 = l3;
l3 = temp;

if (length(l2) % 3 == 0)
temp = temp.getTail();

if (length(l3) % 5 == 0)
l3 = l3.getTail();

if (length(l1) > length(l2))
l1 = l1.getTail();
else if (length(l1) == length(l2))
l2 = l2.getTail();
else
l3 = l3.getTail();

test(l1, l2, l3);
}
}

private static int length(List list) {
int len = 0;

while (list != null) {
list = list.getTail();
len++;
}

return len;
}

private static void test(List l1, List l2, List l3) {
while (l1 != null) {
l2 = new List(l1, l2);
l3 = new List(l2, l3);
l1 = l1.getTail();
}
}
}

public class List {
public Object head;
private List tail;

public List(Object head, List tail) {
this.head = head;
this.tail = tail;
}

public List getTail() {
return tail;
}

public static List mk(int len) {
List result = null;

while (len-- > 0)
result = new List(new Object(), result);

return result;
}
}

(1) JBCToGraph (SOUND transformation)

Constructed TerminationGraph.

(2) Obligation:

Termination Graph based on JBC Program:
Test5.main([Ljava/lang/String;)V: Graph of 292 nodes with 1 SCC.

List.mk(I)LList;: Graph of 33 nodes with 1 SCC.

Test5.length(LList;)I: Graph of 31 nodes with 1 SCC.

Test5.test(LList;LList;LList;)V: Graph of 54 nodes with 1 SCC.


(3) TerminationGraphToSCCProof (SOUND transformation)

Splitted TerminationGraph to 4 SCCss.

(4) Complex Obligation (AND)

(5) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: Test5.test(LList;LList;LList;)V
SCC calls the following helper methods:
Performed SCC analyses: UsedFieldsAnalysis

(6) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 50 rules for P and 0 rules for R.


P rules:
1518_0_test_NULL(EOS(STATIC_1518), java.lang.Object(o921sub), o903, o904, java.lang.Object(o921sub)) → 1519_0_test_NULL(EOS(STATIC_1519), java.lang.Object(o921sub), o903, o904, java.lang.Object(o921sub))
1519_0_test_NULL(EOS(STATIC_1519), java.lang.Object(o921sub), o903, o904, java.lang.Object(o921sub)) → 1521_0_test_New(EOS(STATIC_1521), java.lang.Object(o921sub), o903, o904)
1521_0_test_New(EOS(STATIC_1521), java.lang.Object(o921sub), o903, o904) → 1523_0_test_Duplicate(EOS(STATIC_1523), java.lang.Object(o921sub), o903, o904, java.lang.Object(List(EOC, NULL)))
1523_0_test_Duplicate(EOS(STATIC_1523), java.lang.Object(o921sub), o903, o904, java.lang.Object(List(EOC, NULL))) → 1525_0_test_Load(EOS(STATIC_1525), java.lang.Object(o921sub), o903, o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)))
1525_0_test_Load(EOS(STATIC_1525), java.lang.Object(o921sub), o903, o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL))) → 1526_0_test_Load(EOS(STATIC_1526), java.lang.Object(o921sub), o903, o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub))
1526_0_test_Load(EOS(STATIC_1526), java.lang.Object(o921sub), o903, o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub)) → 1528_0_test_InvokeMethod(EOS(STATIC_1528), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903)
1528_0_test_InvokeMethod(EOS(STATIC_1528), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903) → 1529_0_<init>_Load(EOS(STATIC_1529), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903)
1529_0_<init>_Load(EOS(STATIC_1529), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903) → 1530_0_<init>_InvokeMethod(EOS(STATIC_1530), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)))
1530_0_<init>_InvokeMethod(EOS(STATIC_1530), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL))) → 1531_0_<init>_Load(EOS(STATIC_1531), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903)
1531_0_<init>_Load(EOS(STATIC_1531), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903) → 1533_0_<init>_Load(EOS(STATIC_1533), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)))
1533_0_<init>_Load(EOS(STATIC_1533), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL))) → 1534_0_<init>_FieldAccess(EOS(STATIC_1534), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub))
1534_0_<init>_FieldAccess(EOS(STATIC_1534), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub)) → 1537_0_<init>_Load(EOS(STATIC_1537), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), o903)
1537_0_<init>_Load(EOS(STATIC_1537), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), o903) → 1539_0_<init>_Load(EOS(STATIC_1539), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, o903, java.lang.Object(List(EOC, NULL)))
1539_0_<init>_Load(EOS(STATIC_1539), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, o903, java.lang.Object(List(EOC, NULL))) → 1540_0_<init>_FieldAccess(EOS(STATIC_1540), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), o903)
1540_0_<init>_FieldAccess(EOS(STATIC_1540), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), o903) → 1544_0_<init>_Return(EOS(STATIC_1544), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o903)), java.lang.Object(o921sub), o903)
1544_0_<init>_Return(EOS(STATIC_1544), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o903)), java.lang.Object(o921sub), o903) → 1545_0_test_Store(EOS(STATIC_1545), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, o903)))
1545_0_test_Store(EOS(STATIC_1545), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, o903))) → 1547_0_test_New(EOS(STATIC_1547), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904)
1547_0_test_New(EOS(STATIC_1547), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904) → 1548_0_test_Duplicate(EOS(STATIC_1548), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)))
1548_0_test_Duplicate(EOS(STATIC_1548), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL))) → 1549_0_test_Load(EOS(STATIC_1549), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)))
1549_0_test_Load(EOS(STATIC_1549), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL))) → 1551_0_test_Load(EOS(STATIC_1551), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)))
1551_0_test_Load(EOS(STATIC_1551), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903))) → 1552_0_test_InvokeMethod(EOS(STATIC_1552), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904)
1552_0_test_InvokeMethod(EOS(STATIC_1552), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904) → 1554_0_<init>_Load(EOS(STATIC_1554), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904)
1554_0_<init>_Load(EOS(STATIC_1554), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904) → 1555_0_<init>_InvokeMethod(EOS(STATIC_1555), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)))
1555_0_<init>_InvokeMethod(EOS(STATIC_1555), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL))) → 1558_0_<init>_Load(EOS(STATIC_1558), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904)
1558_0_<init>_Load(EOS(STATIC_1558), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904) → 1559_0_<init>_Load(EOS(STATIC_1559), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)))
1559_0_<init>_Load(EOS(STATIC_1559), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL))) → 1561_0_<init>_FieldAccess(EOS(STATIC_1561), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)))
1561_0_<init>_FieldAccess(EOS(STATIC_1561), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903))) → 1568_0_<init>_Load(EOS(STATIC_1568), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), o904)
1568_0_<init>_Load(EOS(STATIC_1568), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), o904) → 1570_0_<init>_Load(EOS(STATIC_1570), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, o904, java.lang.Object(List(EOC, NULL)))
1570_0_<init>_Load(EOS(STATIC_1570), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, o904, java.lang.Object(List(EOC, NULL))) → 1571_0_<init>_FieldAccess(EOS(STATIC_1571), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), o904)
1571_0_<init>_FieldAccess(EOS(STATIC_1571), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), o904) → 1576_0_<init>_Return(EOS(STATIC_1576), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o903)), o904)
1576_0_<init>_Return(EOS(STATIC_1576), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o903)), o904) → 1577_0_test_Store(EOS(STATIC_1577), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1577_0_test_Store(EOS(STATIC_1577), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904))) → 1579_0_test_Load(EOS(STATIC_1579), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1579_0_test_Load(EOS(STATIC_1579), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904))) → 1581_0_test_InvokeMethod(EOS(STATIC_1581), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub))
1581_0_test_InvokeMethod(EOS(STATIC_1581), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub)) → 1583_0_getTail_Load(EOS(STATIC_1583), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub))
1583_0_getTail_Load(EOS(STATIC_1583), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub)) → 1586_0_getTail_FieldAccess(EOS(STATIC_1586), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub))
1586_0_getTail_FieldAccess(EOS(STATIC_1586), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub)) → 1588_0_getTail_FieldAccess(EOS(STATIC_1588), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub))
1586_0_getTail_FieldAccess(EOS(STATIC_1586), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub)) → 1589_0_getTail_FieldAccess(EOS(STATIC_1589), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub))
1588_0_getTail_FieldAccess(EOS(STATIC_1588), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o977)), java.lang.Object(List(EOC, o977))) → 1591_0_getTail_FieldAccess(EOS(STATIC_1591), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o977)), java.lang.Object(List(EOC, o977)))
1591_0_getTail_FieldAccess(EOS(STATIC_1591), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o977)), java.lang.Object(List(EOC, o977))) → 1594_0_getTail_Return(EOS(STATIC_1594), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o977)), o977)
1594_0_getTail_Return(EOS(STATIC_1594), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o977)), o977) → 1597_0_test_Store(EOS(STATIC_1597), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), o977)
1597_0_test_Store(EOS(STATIC_1597), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), o977) → 1600_0_test_JMP(EOS(STATIC_1600), o977, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1600_0_test_JMP(EOS(STATIC_1600), o977, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904))) → 1612_0_test_Load(EOS(STATIC_1612), o977, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1612_0_test_Load(EOS(STATIC_1612), o977, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904))) → 1516_0_test_Load(EOS(STATIC_1516), o977, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1516_0_test_Load(EOS(STATIC_1516), o902, o903, o904) → 1518_0_test_NULL(EOS(STATIC_1518), o902, o903, o904, o902)
1589_0_getTail_FieldAccess(EOS(STATIC_1589), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o980)), java.lang.Object(List(EOC, o980))) → 1592_0_getTail_FieldAccess(EOS(STATIC_1592), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o980)), java.lang.Object(List(EOC, o980)))
1592_0_getTail_FieldAccess(EOS(STATIC_1592), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o980)), java.lang.Object(List(EOC, o980))) → 1595_0_getTail_Return(EOS(STATIC_1595), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o980)), o980)
1595_0_getTail_Return(EOS(STATIC_1595), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o980)), o980) → 1598_0_test_Store(EOS(STATIC_1598), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), o980)
1598_0_test_Store(EOS(STATIC_1598), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), o980) → 1601_0_test_JMP(EOS(STATIC_1601), o980, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1601_0_test_JMP(EOS(STATIC_1601), o980, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904))) → 1624_0_test_Load(EOS(STATIC_1624), o980, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1624_0_test_Load(EOS(STATIC_1624), o980, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904))) → 1516_0_test_Load(EOS(STATIC_1516), o980, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
R rules:

Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.


P rules:
1518_0_test_NULL(EOS(STATIC_1518), java.lang.Object(List(EOC, x0)), x1, x2, java.lang.Object(List(EOC, x0))) → 1518_0_test_NULL(EOS(STATIC_1518), x0, java.lang.Object(List(EOC, x1)), java.lang.Object(List(EOC, x2)), x0)
R rules:

Filtered ground terms:



1518_0_test_NULL(x1, x2, x3, x4, x5) → 1518_0_test_NULL(x2, x3, x4, x5)
List(x1, x2) → List(x2)
EOS(x1) → EOS

Filtered duplicate args:



1518_0_test_NULL(x1, x2, x3, x4) → 1518_0_test_NULL(x2, x3, x4)

Filtered unneeded arguments:



1518_0_test_NULL(x1, x2, x3) → 1518_0_test_NULL(x3)

Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.


P rules:
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)
R rules:

Finished conversion. Obtained 1 rules for P and 0 rules for R. System has no predefined symbols.


P rules:
1518_0_TEST_NULL(java.lang.Object(List(x0))) → 1518_0_TEST_NULL(x0)
R rules:

(7) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:
none


R is empty.

The integer pair graph contains the following rules and edges:
(0): 1518_0_TEST_NULL(java.lang.Object(List(x0[0]))) → 1518_0_TEST_NULL(x0[0])

(0) -> (0), if (x0[0]* java.lang.Object(List(x0[0]')))



The set Q is empty.

(8) IDPtoQDPProof (SOUND transformation)

Represented integers and predefined function symbols by Terms

(9) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1518_0_TEST_NULL(java.lang.Object(List(x0[0]))) → 1518_0_TEST_NULL(x0[0])

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(10) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • 1518_0_TEST_NULL(java.lang.Object(List(x0[0]))) → 1518_0_TEST_NULL(x0[0])
    The graph contains the following edges 1 > 1

(11) YES

(12) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: Test5.length(LList;)I
SCC calls the following helper methods:
Performed SCC analyses: UsedFieldsAnalysis

(13) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 22 rules for P and 0 rules for R.


P rules:
820_0_length_NULL(EOS(STATIC_820), java.lang.Object(o227sub), java.lang.Object(o227sub)) → 823_0_length_NULL(EOS(STATIC_823), java.lang.Object(o227sub), java.lang.Object(o227sub))
823_0_length_NULL(EOS(STATIC_823), java.lang.Object(o227sub), java.lang.Object(o227sub)) → 828_0_length_Load(EOS(STATIC_828), java.lang.Object(o227sub))
828_0_length_Load(EOS(STATIC_828), java.lang.Object(o227sub)) → 833_0_length_InvokeMethod(EOS(STATIC_833), java.lang.Object(o227sub))
833_0_length_InvokeMethod(EOS(STATIC_833), java.lang.Object(o227sub)) → 837_0_getTail_Load(EOS(STATIC_837), java.lang.Object(o227sub), java.lang.Object(o227sub))
837_0_getTail_Load(EOS(STATIC_837), java.lang.Object(o227sub), java.lang.Object(o227sub)) → 847_0_getTail_FieldAccess(EOS(STATIC_847), java.lang.Object(o227sub), java.lang.Object(o227sub))
847_0_getTail_FieldAccess(EOS(STATIC_847), java.lang.Object(o227sub), java.lang.Object(o227sub)) → 854_0_getTail_FieldAccess(EOS(STATIC_854), java.lang.Object(o227sub), java.lang.Object(o227sub))
847_0_getTail_FieldAccess(EOS(STATIC_847), java.lang.Object(o227sub), java.lang.Object(o227sub)) → 855_0_getTail_FieldAccess(EOS(STATIC_855), java.lang.Object(o227sub), java.lang.Object(o227sub))
854_0_getTail_FieldAccess(EOS(STATIC_854), java.lang.Object(List(EOC, o236)), java.lang.Object(List(EOC, o236))) → 856_0_getTail_FieldAccess(EOS(STATIC_856), java.lang.Object(List(EOC, o236)), java.lang.Object(List(EOC, o236)))
856_0_getTail_FieldAccess(EOS(STATIC_856), java.lang.Object(List(EOC, o236)), java.lang.Object(List(EOC, o236))) → 862_0_getTail_Return(EOS(STATIC_862), java.lang.Object(List(EOC, o236)), o236)
862_0_getTail_Return(EOS(STATIC_862), java.lang.Object(List(EOC, o236)), o236) → 867_0_length_Store(EOS(STATIC_867), o236)
867_0_length_Store(EOS(STATIC_867), o236) → 872_0_length_Inc(EOS(STATIC_872), o236)
872_0_length_Inc(EOS(STATIC_872), o236) → 875_0_length_JMP(EOS(STATIC_875), o236)
875_0_length_JMP(EOS(STATIC_875), o236) → 883_0_length_Load(EOS(STATIC_883), o236)
883_0_length_Load(EOS(STATIC_883), o236) → 815_0_length_Load(EOS(STATIC_815), o236)
815_0_length_Load(EOS(STATIC_815), o219) → 820_0_length_NULL(EOS(STATIC_820), o219, o219)
855_0_getTail_FieldAccess(EOS(STATIC_855), java.lang.Object(List(EOC, o239)), java.lang.Object(List(EOC, o239))) → 857_0_getTail_FieldAccess(EOS(STATIC_857), java.lang.Object(List(EOC, o239)), java.lang.Object(List(EOC, o239)))
857_0_getTail_FieldAccess(EOS(STATIC_857), java.lang.Object(List(EOC, o239)), java.lang.Object(List(EOC, o239))) → 864_0_getTail_Return(EOS(STATIC_864), java.lang.Object(List(EOC, o239)), o239)
864_0_getTail_Return(EOS(STATIC_864), java.lang.Object(List(EOC, o239)), o239) → 868_0_length_Store(EOS(STATIC_868), o239)
868_0_length_Store(EOS(STATIC_868), o239) → 873_0_length_Inc(EOS(STATIC_873), o239)
873_0_length_Inc(EOS(STATIC_873), o239) → 877_0_length_JMP(EOS(STATIC_877), o239)
877_0_length_JMP(EOS(STATIC_877), o239) → 886_0_length_Load(EOS(STATIC_886), o239)
886_0_length_Load(EOS(STATIC_886), o239) → 815_0_length_Load(EOS(STATIC_815), o239)
R rules:

Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.


P rules:
820_0_length_NULL(EOS(STATIC_820), java.lang.Object(List(EOC, x0)), java.lang.Object(List(EOC, x0))) → 820_0_length_NULL(EOS(STATIC_820), x0, x0)
R rules:

Filtered ground terms:



820_0_length_NULL(x1, x2, x3) → 820_0_length_NULL(x2, x3)
EOS(x1) → EOS
List(x1, x2) → List(x2)

Filtered duplicate args:



820_0_length_NULL(x1, x2) → 820_0_length_NULL(x2)

Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.


P rules:
820_0_length_NULL(java.lang.Object(List(x0))) → 820_0_length_NULL(x0)
R rules:

Finished conversion. Obtained 1 rules for P and 0 rules for R. System has no predefined symbols.


P rules:
820_0_LENGTH_NULL(java.lang.Object(List(x0))) → 820_0_LENGTH_NULL(x0)
R rules:

(14) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:
none


R is empty.

The integer pair graph contains the following rules and edges:
(0): 820_0_LENGTH_NULL(java.lang.Object(List(x0[0]))) → 820_0_LENGTH_NULL(x0[0])

(0) -> (0), if (x0[0]* java.lang.Object(List(x0[0]')))



The set Q is empty.

(15) IDPtoQDPProof (SOUND transformation)

Represented integers and predefined function symbols by Terms

(16) Obligation:

Q DP problem:
The TRS P consists of the following rules:

820_0_LENGTH_NULL(java.lang.Object(List(x0[0]))) → 820_0_LENGTH_NULL(x0[0])

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(17) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • 820_0_LENGTH_NULL(java.lang.Object(List(x0[0]))) → 820_0_LENGTH_NULL(x0[0])
    The graph contains the following edges 1 > 1

(18) YES

(19) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: List.mk(I)LList;
SCC calls the following helper methods:
Performed SCC analyses: UsedFieldsAnalysis

(20) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 23 rules for P and 0 rules for R.


P rules:
611_0_mk_Inc(EOS(STATIC_611), i78, i78) → 617_0_mk_LE(EOS(STATIC_617), +(i78, -1), i78)
617_0_mk_LE(EOS(STATIC_617), i80, i84) → 625_0_mk_LE(EOS(STATIC_625), i80, i84)
625_0_mk_LE(EOS(STATIC_625), i80, i84) → 632_0_mk_New(EOS(STATIC_632), i80) | >(i84, 0)
632_0_mk_New(EOS(STATIC_632), i80) → 644_0_mk_Duplicate(EOS(STATIC_644), i80)
644_0_mk_Duplicate(EOS(STATIC_644), i80) → 651_0_mk_New(EOS(STATIC_651), i80)
651_0_mk_New(EOS(STATIC_651), i80) → 668_0_mk_Duplicate(EOS(STATIC_668), i80)
668_0_mk_Duplicate(EOS(STATIC_668), i80) → 686_0_mk_InvokeMethod(EOS(STATIC_686), i80)
686_0_mk_InvokeMethod(EOS(STATIC_686), i80) → 694_0_mk_Load(EOS(STATIC_694), i80)
694_0_mk_Load(EOS(STATIC_694), i80) → 701_0_mk_InvokeMethod(EOS(STATIC_701), i80)
701_0_mk_InvokeMethod(EOS(STATIC_701), i80) → 708_0_<init>_Load(EOS(STATIC_708), i80)
708_0_<init>_Load(EOS(STATIC_708), i80) → 724_0_<init>_InvokeMethod(EOS(STATIC_724), i80)
724_0_<init>_InvokeMethod(EOS(STATIC_724), i80) → 729_0_<init>_Load(EOS(STATIC_729), i80)
729_0_<init>_Load(EOS(STATIC_729), i80) → 735_0_<init>_Load(EOS(STATIC_735), i80)
735_0_<init>_Load(EOS(STATIC_735), i80) → 742_0_<init>_FieldAccess(EOS(STATIC_742), i80)
742_0_<init>_FieldAccess(EOS(STATIC_742), i80) → 748_0_<init>_Load(EOS(STATIC_748), i80)
748_0_<init>_Load(EOS(STATIC_748), i80) → 755_0_<init>_Load(EOS(STATIC_755), i80)
755_0_<init>_Load(EOS(STATIC_755), i80) → 765_0_<init>_FieldAccess(EOS(STATIC_765), i80)
765_0_<init>_FieldAccess(EOS(STATIC_765), i80) → 772_0_<init>_Return(EOS(STATIC_772), i80)
772_0_<init>_Return(EOS(STATIC_772), i80) → 780_0_mk_Store(EOS(STATIC_780), i80)
780_0_mk_Store(EOS(STATIC_780), i80) → 789_0_mk_JMP(EOS(STATIC_789), i80)
789_0_mk_JMP(EOS(STATIC_789), i80) → 798_0_mk_Load(EOS(STATIC_798), i80)
798_0_mk_Load(EOS(STATIC_798), i80) → 603_0_mk_Load(EOS(STATIC_603), i80)
603_0_mk_Load(EOS(STATIC_603), i78) → 611_0_mk_Inc(EOS(STATIC_611), i78, i78)
R rules:

Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.


P rules:
611_0_mk_Inc(EOS(STATIC_611), x0, x0) → 611_0_mk_Inc(EOS(STATIC_611), +(x0, -1), +(x0, -1)) | >(x0, 0)
R rules:

Filtered ground terms:



611_0_mk_Inc(x1, x2, x3) → 611_0_mk_Inc(x2, x3)
EOS(x1) → EOS
Cond_611_0_mk_Inc(x1, x2, x3, x4) → Cond_611_0_mk_Inc(x1, x3, x4)

Filtered duplicate args:



611_0_mk_Inc(x1, x2) → 611_0_mk_Inc(x2)
Cond_611_0_mk_Inc(x1, x2, x3) → Cond_611_0_mk_Inc(x1, x3)

Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.


P rules:
611_0_mk_Inc(x0) → 611_0_mk_Inc(+(x0, -1)) | >(x0, 0)
R rules:

Finished conversion. Obtained 2 rules for P and 0 rules for R. System has predefined symbols.


P rules:
611_0_MK_INC(x0) → COND_611_0_MK_INC(>(x0, 0), x0)
COND_611_0_MK_INC(TRUE, x0) → 611_0_MK_INC(+(x0, -1))
R rules:

(21) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): 611_0_MK_INC(x0[0]) → COND_611_0_MK_INC(x0[0] > 0, x0[0])
(1): COND_611_0_MK_INC(TRUE, x0[1]) → 611_0_MK_INC(x0[1] + -1)

(0) -> (1), if (x0[0] > 0x0[0]* x0[1])


(1) -> (0), if (x0[1] + -1* x0[0])



The set Q is empty.

(22) IDPNonInfProof (SOUND transformation)

Used the following options for this NonInfProof:
IDPGPoloSolver: Range: [(-1,2)] IsNat: false Interpretation Shape Heuristic: aprove.DPFramework.IDPProblem.Processors.nonInf.poly.IdpCand1ShapeHeuristic@c5ac40c Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 0 Max Right Steps: 0

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair 611_0_MK_INC(x0) → COND_611_0_MK_INC(>(x0, 0), x0) the following chains were created:
  • We consider the chain 611_0_MK_INC(x0[0]) → COND_611_0_MK_INC(>(x0[0], 0), x0[0]), COND_611_0_MK_INC(TRUE, x0[1]) → 611_0_MK_INC(+(x0[1], -1)) which results in the following constraint:

    (1)    (>(x0[0], 0)=TRUEx0[0]=x0[1]611_0_MK_INC(x0[0])≥NonInfC∧611_0_MK_INC(x0[0])≥COND_611_0_MK_INC(>(x0[0], 0), x0[0])∧(UIncreasing(COND_611_0_MK_INC(>(x0[0], 0), x0[0])), ≥))



    We simplified constraint (1) using rule (IV) which results in the following new constraint:

    (2)    (>(x0[0], 0)=TRUE611_0_MK_INC(x0[0])≥NonInfC∧611_0_MK_INC(x0[0])≥COND_611_0_MK_INC(>(x0[0], 0), x0[0])∧(UIncreasing(COND_611_0_MK_INC(>(x0[0], 0), x0[0])), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_611_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_611_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_611_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)



    We simplified constraint (5) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (6)    (x0[0] ≥ 0 ⇒ (UIncreasing(COND_611_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8 + (2)bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)







For Pair COND_611_0_MK_INC(TRUE, x0) → 611_0_MK_INC(+(x0, -1)) the following chains were created:
  • We consider the chain COND_611_0_MK_INC(TRUE, x0[1]) → 611_0_MK_INC(+(x0[1], -1)) which results in the following constraint:

    (7)    (COND_611_0_MK_INC(TRUE, x0[1])≥NonInfC∧COND_611_0_MK_INC(TRUE, x0[1])≥611_0_MK_INC(+(x0[1], -1))∧(UIncreasing(611_0_MK_INC(+(x0[1], -1))), ≥))



    We simplified constraint (7) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (8)    ((UIncreasing(611_0_MK_INC(+(x0[1], -1))), ≥)∧[bni_10] = 0∧[2 + (-1)bso_11] ≥ 0)



    We simplified constraint (8) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (9)    ((UIncreasing(611_0_MK_INC(+(x0[1], -1))), ≥)∧[bni_10] = 0∧[2 + (-1)bso_11] ≥ 0)



    We simplified constraint (9) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (10)    ((UIncreasing(611_0_MK_INC(+(x0[1], -1))), ≥)∧[bni_10] = 0∧[2 + (-1)bso_11] ≥ 0)



    We simplified constraint (10) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (11)    ((UIncreasing(611_0_MK_INC(+(x0[1], -1))), ≥)∧[bni_10] = 0∧0 = 0∧[2 + (-1)bso_11] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 611_0_MK_INC(x0) → COND_611_0_MK_INC(>(x0, 0), x0)
    • (x0[0] ≥ 0 ⇒ (UIncreasing(COND_611_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8 + (2)bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)

  • COND_611_0_MK_INC(TRUE, x0) → 611_0_MK_INC(+(x0, -1))
    • ((UIncreasing(611_0_MK_INC(+(x0[1], -1))), ≥)∧[bni_10] = 0∧0 = 0∧[2 + (-1)bso_11] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(611_0_MK_INC(x1)) = [2]x1   
POL(COND_611_0_MK_INC(x1, x2)) = [2]x2   
POL(>(x1, x2)) = [-1]   
POL(0) = 0   
POL(+(x1, x2)) = x1 + x2   
POL(-1) = [-1]   

The following pairs are in P>:

COND_611_0_MK_INC(TRUE, x0[1]) → 611_0_MK_INC(+(x0[1], -1))

The following pairs are in Pbound:

611_0_MK_INC(x0[0]) → COND_611_0_MK_INC(>(x0[0], 0), x0[0])

The following pairs are in P:

611_0_MK_INC(x0[0]) → COND_611_0_MK_INC(>(x0[0], 0), x0[0])

There are no usable rules.

(23) Complex Obligation (AND)

(24) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): 611_0_MK_INC(x0[0]) → COND_611_0_MK_INC(x0[0] > 0, x0[0])


The set Q is empty.

(25) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(26) TRUE

(27) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(1): COND_611_0_MK_INC(TRUE, x0[1]) → 611_0_MK_INC(x0[1] + -1)


The set Q is empty.

(28) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(29) TRUE

(30) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: Test5.main([Ljava/lang/String;)V
SCC calls the following helper methods: Test5.length(LList;)I, Test5.test(LList;LList;LList;)V
Performed SCC analyses: UsedFieldsAnalysis

(31) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 120 rules for P and 103 rules for R.


P rules:
342_0_main_InvokeMethod(EOS(STATIC_342), o27, o15, o34, o27) → 346_1_main_InvokeMethod(346_0_length_ConstantStackPush(EOS(STATIC_346), o27), o27, o15, o34, o27)
346_1_main_InvokeMethod(834_0_length_Return(EOS(STATIC_834), i111), o228, o15, o34, o228) → 850_0_length_Return(EOS(STATIC_850), o228, o15, o34, o228, i111)
850_0_length_Return(EOS(STATIC_850), o228, o15, o34, o228, i111) → 764_0_length_Return(EOS(STATIC_764), o228, o15, o34, o228, i111)
764_0_length_Return(EOS(STATIC_764), o195, o196, o197, o195, i104) → 769_0_main_LE(EOS(STATIC_769), o195, o196, o197, i104)
769_0_main_LE(EOS(STATIC_769), o195, o196, o197, i107) → 778_0_main_LE(EOS(STATIC_778), o195, o196, o197, i107)
778_0_main_LE(EOS(STATIC_778), o195, o196, o197, i107) → 787_0_main_Load(EOS(STATIC_787), o195, o196, o197) | >(i107, 0)
787_0_main_Load(EOS(STATIC_787), o195, o196, o197) → 795_0_main_Store(EOS(STATIC_795), o196, o197, o195)
795_0_main_Store(EOS(STATIC_795), o196, o197, o195) → 803_0_main_Load(EOS(STATIC_803), o196, o197, o195)
803_0_main_Load(EOS(STATIC_803), o196, o197, o195) → 808_0_main_Store(EOS(STATIC_808), o197, o195, o196)
808_0_main_Store(EOS(STATIC_808), o197, o195, o196) → 817_0_main_Load(EOS(STATIC_817), o196, o197, o195)
817_0_main_Load(EOS(STATIC_817), o196, o197, o195) → 821_0_main_Store(EOS(STATIC_821), o196, o195, o197)
821_0_main_Store(EOS(STATIC_821), o196, o195, o197) → 826_0_main_Load(EOS(STATIC_826), o196, o197, o195)
826_0_main_Load(EOS(STATIC_826), o196, o197, o195) → 831_0_main_Store(EOS(STATIC_831), o196, o197, o195, o195)
831_0_main_Store(EOS(STATIC_831), o196, o197, o195, o195) → 836_0_main_Load(EOS(STATIC_836), o196, o197, o195, o195)
836_0_main_Load(EOS(STATIC_836), o196, o197, o195, o195) → 841_0_main_InvokeMethod(EOS(STATIC_841), o196, o197, o195, o195, o197)
841_0_main_InvokeMethod(EOS(STATIC_841), o196, o197, o195, o195, o197) → 845_1_main_InvokeMethod(845_0_length_ConstantStackPush(EOS(STATIC_845), o197), o196, o197, o195, o195, o197)
845_1_main_InvokeMethod(834_0_length_Return(EOS(STATIC_834), i111), o196, o242, o195, o195, o242) → 865_0_length_Return(EOS(STATIC_865), o196, o242, o195, o195, o242, i111)
865_0_length_Return(EOS(STATIC_865), o196, o242, o195, o195, o242, i111) → 870_0_main_ConstantStackPush(EOS(STATIC_870), o196, o242, o195, o195, i111)
870_0_main_ConstantStackPush(EOS(STATIC_870), o196, o242, o195, o195, i111) → 874_0_main_IntArithmetic(EOS(STATIC_874), o196, o242, o195, o195, i111, 3)
874_0_main_IntArithmetic(EOS(STATIC_874), o196, o242, o195, o195, i111, matching1) → 880_0_main_NE(EOS(STATIC_880), o196, o242, o195, o195, %(i111, 3)) | =(matching1, 3)
880_0_main_NE(EOS(STATIC_880), o196, o242, o195, o195, i123) → 887_0_main_NE(EOS(STATIC_887), o196, o242, o195, o195, i123)
880_0_main_NE(EOS(STATIC_880), o196, o242, o195, o195, matching1) → 889_0_main_NE(EOS(STATIC_889), o196, o242, o195, o195, 0) | =(matching1, 0)
887_0_main_NE(EOS(STATIC_887), o196, o242, o195, o195, i123) → 890_0_main_Load(EOS(STATIC_890), o196, o242, o195) | >(i123, 0)
890_0_main_Load(EOS(STATIC_890), o196, o242, o195) → 892_0_main_InvokeMethod(EOS(STATIC_892), o196, o242, o195, o195)
892_0_main_InvokeMethod(EOS(STATIC_892), o196, o242, o195, o195) → 896_1_main_InvokeMethod(896_0_length_ConstantStackPush(EOS(STATIC_896), o195), o196, o242, o195, o195)
896_1_main_InvokeMethod(834_0_length_Return(EOS(STATIC_834), i111), o196, o242, o263, o263) → 910_0_length_Return(EOS(STATIC_910), o196, o242, o263, o263, i111)
910_0_length_Return(EOS(STATIC_910), o196, o242, o263, o263, i111) → 915_0_main_ConstantStackPush(EOS(STATIC_915), o196, o242, o263, i111)
915_0_main_ConstantStackPush(EOS(STATIC_915), o196, o242, o263, i111) → 920_0_main_IntArithmetic(EOS(STATIC_920), o196, o242, o263, i111, 5)
920_0_main_IntArithmetic(EOS(STATIC_920), o196, o242, o263, i111, matching1) → 923_0_main_NE(EOS(STATIC_923), o196, o242, o263, %(i111, 5)) | =(matching1, 5)
923_0_main_NE(EOS(STATIC_923), o196, o242, o263, i126) → 928_0_main_NE(EOS(STATIC_928), o196, o242, o263, i126)
923_0_main_NE(EOS(STATIC_923), o196, o242, o263, matching1) → 929_0_main_NE(EOS(STATIC_929), o196, o242, o263, 0) | =(matching1, 0)
928_0_main_NE(EOS(STATIC_928), o196, o242, o263, i126) → 934_0_main_Load(EOS(STATIC_934), o196, o242, o263) | >(i126, 0)
934_0_main_Load(EOS(STATIC_934), o196, o242, o263) → 1009_0_main_Load(EOS(STATIC_1009), o196, o242, o263)
1009_0_main_Load(EOS(STATIC_1009), o196, o242, o305) → 1015_0_main_InvokeMethod(EOS(STATIC_1015), o196, o242, o305, o196)
1015_0_main_InvokeMethod(EOS(STATIC_1015), o196, o242, o305, o196) → 1020_1_main_InvokeMethod(1020_0_length_ConstantStackPush(EOS(STATIC_1020), o196), o196, o242, o305, o196)
1020_1_main_InvokeMethod(834_0_length_Return(EOS(STATIC_834), i111), o330, o242, o305, o330) → 1038_0_length_Return(EOS(STATIC_1038), o330, o242, o305, o330, i111)
1038_0_length_Return(EOS(STATIC_1038), o330, o242, o305, o330, i111) → 1042_0_main_Load(EOS(STATIC_1042), o330, o242, o305, i111)
1042_0_main_Load(EOS(STATIC_1042), o330, o242, o305, i111) → 1046_0_main_InvokeMethod(EOS(STATIC_1046), o330, o242, o305, i111, o242)
1046_0_main_InvokeMethod(EOS(STATIC_1046), o330, o242, o305, i111, o242) → 1050_1_main_InvokeMethod(1050_0_length_ConstantStackPush(EOS(STATIC_1050), o242), o330, o242, o305, i111, o242)
1050_1_main_InvokeMethod(834_0_length_Return(EOS(STATIC_834), i137), o330, o352, o305, i111, o352) → 1067_0_length_Return(EOS(STATIC_1067), o330, o352, o305, i111, o352, i137)
1067_0_length_Return(EOS(STATIC_1067), o330, o352, o305, i111, o352, i137) → 1072_0_main_LE(EOS(STATIC_1072), o330, o352, o305, i111, i137)
1072_0_main_LE(EOS(STATIC_1072), o330, o352, o305, i111, i137) → 1076_0_main_LE(EOS(STATIC_1076), o330, o352, o305, i111, i137)
1072_0_main_LE(EOS(STATIC_1072), o330, o352, o305, i111, i137) → 1077_0_main_LE(EOS(STATIC_1077), o330, o352, o305, i111, i137)
1076_0_main_LE(EOS(STATIC_1076), o330, o352, o305, i111, i137) → 1080_0_main_Load(EOS(STATIC_1080), o330, o352, o305) | <=(i111, i137)
1080_0_main_Load(EOS(STATIC_1080), o330, o352, o305) → 1085_0_main_InvokeMethod(EOS(STATIC_1085), o330, o352, o305, o330)
1085_0_main_InvokeMethod(EOS(STATIC_1085), o330, o352, o305, o330) → 1090_1_main_InvokeMethod(1090_0_length_ConstantStackPush(EOS(STATIC_1090), o330), o330, o352, o305, o330)
1090_1_main_InvokeMethod(834_0_length_Return(EOS(STATIC_834), i111), o373, o352, o305, o373) → 1100_0_length_Return(EOS(STATIC_1100), o373, o352, o305, o373, i111)
1100_0_length_Return(EOS(STATIC_1100), o373, o352, o305, o373, i111) → 1106_0_main_Load(EOS(STATIC_1106), o373, o352, o305, i111)
1106_0_main_Load(EOS(STATIC_1106), o373, o352, o305, i111) → 1110_0_main_InvokeMethod(EOS(STATIC_1110), o373, o352, o305, i111, o352)
1110_0_main_InvokeMethod(EOS(STATIC_1110), o373, o352, o305, i111, o352) → 1113_1_main_InvokeMethod(1113_0_length_ConstantStackPush(EOS(STATIC_1113), o352), o373, o352, o305, i111, o352)
1113_1_main_InvokeMethod(834_0_length_Return(EOS(STATIC_834), i139), o373, o404, o305, i111, o404) → 1131_0_length_Return(EOS(STATIC_1131), o373, o404, o305, i111, o404, i139)
1131_0_length_Return(EOS(STATIC_1131), o373, o404, o305, i111, o404, i139) → 1135_0_main_NE(EOS(STATIC_1135), o373, o404, o305, i111, i139)
1135_0_main_NE(EOS(STATIC_1135), o373, o404, o305, i111, i139) → 1139_0_main_NE(EOS(STATIC_1139), o373, o404, o305, i111, i139)
1135_0_main_NE(EOS(STATIC_1135), o373, o404, o305, i139, i139) → 1140_0_main_NE(EOS(STATIC_1140), o373, o404, o305, i139, i139)
1139_0_main_NE(EOS(STATIC_1139), o373, o404, o305, i111, i139) → 1146_0_main_Load(EOS(STATIC_1146), o373, o404, o305) | !(=(i111, i139))
1146_0_main_Load(EOS(STATIC_1146), o373, o404, o305) → 1151_0_main_InvokeMethod(EOS(STATIC_1151), o373, o404, o305)
1151_0_main_InvokeMethod(EOS(STATIC_1151), o373, o404, java.lang.Object(o424sub)) → 1158_0_main_InvokeMethod(EOS(STATIC_1158), o373, o404, java.lang.Object(o424sub))
1158_0_main_InvokeMethod(EOS(STATIC_1158), o373, o404, java.lang.Object(o424sub)) → 1167_0_getTail_Load(EOS(STATIC_1167), o373, o404, java.lang.Object(o424sub), java.lang.Object(o424sub))
1167_0_getTail_Load(EOS(STATIC_1167), o373, o404, java.lang.Object(o424sub), java.lang.Object(o424sub)) → 1191_0_getTail_FieldAccess(EOS(STATIC_1191), o373, o404, java.lang.Object(o424sub), java.lang.Object(o424sub))
1191_0_getTail_FieldAccess(EOS(STATIC_1191), o373, o404, java.lang.Object(List(EOC, o483)), java.lang.Object(List(EOC, o483))) → 1203_0_getTail_FieldAccess(EOS(STATIC_1203), o373, o404, java.lang.Object(List(EOC, o483)), java.lang.Object(List(EOC, o483)))
1203_0_getTail_FieldAccess(EOS(STATIC_1203), o373, o404, java.lang.Object(List(EOC, o483)), java.lang.Object(List(EOC, o483))) → 1217_0_getTail_Return(EOS(STATIC_1217), o373, o404, java.lang.Object(List(EOC, o483)), o483)
1217_0_getTail_Return(EOS(STATIC_1217), o373, o404, java.lang.Object(List(EOC, o483)), o483) → 1227_0_main_Store(EOS(STATIC_1227), o373, o404, o483)
1227_0_main_Store(EOS(STATIC_1227), o373, o404, o483) → 1236_0_main_Load(EOS(STATIC_1236), o373, o404, o483)
1236_0_main_Load(EOS(STATIC_1236), o373, o404, o483) → 1251_0_main_Load(EOS(STATIC_1251), o373, o404, o483)
1251_0_main_Load(EOS(STATIC_1251), o373, o492, o305) → 1257_0_main_Load(EOS(STATIC_1257), o373, o492, o305, o373)
1257_0_main_Load(EOS(STATIC_1257), o373, o492, o305, o373) → 1264_0_main_Load(EOS(STATIC_1264), o373, o492, o305, o373, o492)
1264_0_main_Load(EOS(STATIC_1264), o373, o492, o305, o373, o492) → 1271_0_main_InvokeMethod(EOS(STATIC_1271), o373, o492, o305, o373, o492, o305)
1271_0_main_InvokeMethod(EOS(STATIC_1271), o373, o492, o305, o373, o492, o305) → 1275_1_main_InvokeMethod(1275_0_test_Load(EOS(STATIC_1275), o373, o492, o305), o373, o492, o305, o373, o492, o305)
1275_1_main_InvokeMethod(1522_0_test_Return(EOS(STATIC_1522)), o923, o924, o925, o923, o924, o925) → 1527_0_test_Return(EOS(STATIC_1527), o923, o924, o925, o923, o924, o925)
1527_0_test_Return(EOS(STATIC_1527), o923, o924, o925, o923, o924, o925) → 1436_0_test_Return(EOS(STATIC_1436), o923, o924, o925, o923, o924, o925)
1436_0_test_Return(EOS(STATIC_1436), o830, o831, o832, o830, o831, o832) → 1440_0_main_JMP(EOS(STATIC_1440), o830, o831, o832)
1440_0_main_JMP(EOS(STATIC_1440), o830, o831, o832) → 1443_0_main_Load(EOS(STATIC_1443), o830, o831, o832)
1443_0_main_Load(EOS(STATIC_1443), o830, o831, o832) → 338_0_main_Load(EOS(STATIC_338), o830, o831, o832)
338_0_main_Load(EOS(STATIC_338), o27, o15, o34) → 342_0_main_InvokeMethod(EOS(STATIC_342), o27, o15, o34, o27)
1140_0_main_NE(EOS(STATIC_1140), o373, o404, o305, i139, i139) → 1147_0_main_Load(EOS(STATIC_1147), o373, o404, o305)
1147_0_main_Load(EOS(STATIC_1147), o373, o404, o305) → 1153_0_main_InvokeMethod(EOS(STATIC_1153), o373, o305, o404)
1153_0_main_InvokeMethod(EOS(STATIC_1153), o373, o305, java.lang.Object(o425sub)) → 1161_0_main_InvokeMethod(EOS(STATIC_1161), o373, o305, java.lang.Object(o425sub))
1161_0_main_InvokeMethod(EOS(STATIC_1161), o373, o305, java.lang.Object(o425sub)) → 1170_0_getTail_Load(EOS(STATIC_1170), o373, o305, java.lang.Object(o425sub), java.lang.Object(o425sub))
1170_0_getTail_Load(EOS(STATIC_1170), o373, o305, java.lang.Object(o425sub), java.lang.Object(o425sub)) → 1196_0_getTail_FieldAccess(EOS(STATIC_1196), o373, o305, java.lang.Object(o425sub), java.lang.Object(o425sub))
1196_0_getTail_FieldAccess(EOS(STATIC_1196), o373, o305, java.lang.Object(List(EOC, o492)), java.lang.Object(List(EOC, o492))) → 1207_0_getTail_FieldAccess(EOS(STATIC_1207), o373, o305, java.lang.Object(List(EOC, o492)), java.lang.Object(List(EOC, o492)))
1207_0_getTail_FieldAccess(EOS(STATIC_1207), o373, o305, java.lang.Object(List(EOC, o492)), java.lang.Object(List(EOC, o492))) → 1219_0_getTail_Return(EOS(STATIC_1219), o373, o305, java.lang.Object(List(EOC, o492)), o492)
1219_0_getTail_Return(EOS(STATIC_1219), o373, o305, java.lang.Object(List(EOC, o492)), o492) → 1228_0_main_Store(EOS(STATIC_1228), o373, o305, o492)
1228_0_main_Store(EOS(STATIC_1228), o373, o305, o492) → 1241_0_main_JMP(EOS(STATIC_1241), o373, o492, o305)
1241_0_main_JMP(EOS(STATIC_1241), o373, o492, o305) → 1251_0_main_Load(EOS(STATIC_1251), o373, o492, o305)
1077_0_main_LE(EOS(STATIC_1077), o330, o352, o305, i111, i137) → 1081_0_main_Load(EOS(STATIC_1081), o330, o352, o305) | >(i111, i137)
1081_0_main_Load(EOS(STATIC_1081), o330, o352, o305) → 1086_0_main_InvokeMethod(EOS(STATIC_1086), o352, o305, o330)
1086_0_main_InvokeMethod(EOS(STATIC_1086), o352, o305, java.lang.Object(o369sub)) → 1091_0_main_InvokeMethod(EOS(STATIC_1091), o352, o305, java.lang.Object(o369sub))
1091_0_main_InvokeMethod(EOS(STATIC_1091), o352, o305, java.lang.Object(o369sub)) → 1095_0_getTail_Load(EOS(STATIC_1095), o352, o305, java.lang.Object(o369sub), java.lang.Object(o369sub))
1095_0_getTail_Load(EOS(STATIC_1095), o352, o305, java.lang.Object(o369sub), java.lang.Object(o369sub)) → 1099_0_getTail_FieldAccess(EOS(STATIC_1099), o352, o305, java.lang.Object(o369sub), java.lang.Object(o369sub))
1099_0_getTail_FieldAccess(EOS(STATIC_1099), o352, o305, java.lang.Object(List(EOC, o388)), java.lang.Object(List(EOC, o388))) → 1101_0_getTail_FieldAccess(EOS(STATIC_1101), o352, o305, java.lang.Object(List(EOC, o388)), java.lang.Object(List(EOC, o388)))
1101_0_getTail_FieldAccess(EOS(STATIC_1101), o352, o305, java.lang.Object(List(EOC, o388)), java.lang.Object(List(EOC, o388))) → 1108_0_getTail_Return(EOS(STATIC_1108), o352, o305, java.lang.Object(List(EOC, o388)), o388)
1108_0_getTail_Return(EOS(STATIC_1108), o352, o305, java.lang.Object(List(EOC, o388)), o388) → 1112_0_main_Store(EOS(STATIC_1112), o352, o305, o388)
1112_0_main_Store(EOS(STATIC_1112), o352, o305, o388) → 1115_0_main_JMP(EOS(STATIC_1115), o388, o352, o305)
1115_0_main_JMP(EOS(STATIC_1115), o388, o352, o305) → 1120_0_main_Load(EOS(STATIC_1120), o388, o352, o305)
1120_0_main_Load(EOS(STATIC_1120), o388, o352, o305) → 1236_0_main_Load(EOS(STATIC_1236), o388, o352, o305)
929_0_main_NE(EOS(STATIC_929), o196, o242, o263, matching1) → 936_0_main_Load(EOS(STATIC_936), o196, o242, o263) | =(matching1, 0)
936_0_main_Load(EOS(STATIC_936), o196, o242, o263) → 941_0_main_InvokeMethod(EOS(STATIC_941), o196, o242, o263)
941_0_main_InvokeMethod(EOS(STATIC_941), o196, o242, java.lang.Object(o280sub)) → 946_0_main_InvokeMethod(EOS(STATIC_946), o196, o242, java.lang.Object(o280sub))
946_0_main_InvokeMethod(EOS(STATIC_946), o196, o242, java.lang.Object(o280sub)) → 953_0_getTail_Load(EOS(STATIC_953), o196, o242, java.lang.Object(o280sub), java.lang.Object(o280sub))
953_0_getTail_Load(EOS(STATIC_953), o196, o242, java.lang.Object(o280sub), java.lang.Object(o280sub)) → 971_0_getTail_FieldAccess(EOS(STATIC_971), o196, o242, java.lang.Object(o280sub), java.lang.Object(o280sub))
971_0_getTail_FieldAccess(EOS(STATIC_971), o196, o242, java.lang.Object(List(EOC, o305)), java.lang.Object(List(EOC, o305))) → 978_0_getTail_FieldAccess(EOS(STATIC_978), o196, o242, java.lang.Object(List(EOC, o305)), java.lang.Object(List(EOC, o305)))
978_0_getTail_FieldAccess(EOS(STATIC_978), o196, o242, java.lang.Object(List(EOC, o305)), java.lang.Object(List(EOC, o305))) → 989_0_getTail_Return(EOS(STATIC_989), o196, o242, java.lang.Object(List(EOC, o305)), o305)
989_0_getTail_Return(EOS(STATIC_989), o196, o242, java.lang.Object(List(EOC, o305)), o305) → 999_0_main_Store(EOS(STATIC_999), o196, o242, o305)
999_0_main_Store(EOS(STATIC_999), o196, o242, o305) → 1009_0_main_Load(EOS(STATIC_1009), o196, o242, o305)
889_0_main_NE(EOS(STATIC_889), o196, o242, o195, o195, matching1) → 891_0_main_Load(EOS(STATIC_891), o196, o242, o195, o195) | =(matching1, 0)
891_0_main_Load(EOS(STATIC_891), o196, o242, o195, o195) → 894_0_main_InvokeMethod(EOS(STATIC_894), o196, o242, o195, o195)
894_0_main_InvokeMethod(EOS(STATIC_894), o196, o242, java.lang.Object(o257sub), java.lang.Object(o257sub)) → 898_0_main_InvokeMethod(EOS(STATIC_898), o196, o242, java.lang.Object(o257sub), java.lang.Object(o257sub))
898_0_main_InvokeMethod(EOS(STATIC_898), o196, o242, java.lang.Object(o257sub), java.lang.Object(o257sub)) → 903_0_getTail_Load(EOS(STATIC_903), o196, o242, java.lang.Object(o257sub), java.lang.Object(o257sub), java.lang.Object(o257sub))
903_0_getTail_Load(EOS(STATIC_903), o196, o242, java.lang.Object(o257sub), java.lang.Object(o257sub), java.lang.Object(o257sub)) → 909_0_getTail_FieldAccess(EOS(STATIC_909), o196, o242, java.lang.Object(o257sub), java.lang.Object(o257sub), java.lang.Object(o257sub))
909_0_getTail_FieldAccess(EOS(STATIC_909), o196, o242, java.lang.Object(List(EOC, o270)), java.lang.Object(List(EOC, o270)), java.lang.Object(List(EOC, o270))) → 912_0_getTail_FieldAccess(EOS(STATIC_912), o196, o242, java.lang.Object(List(EOC, o270)), java.lang.Object(List(EOC, o270)), java.lang.Object(List(EOC, o270)))
912_0_getTail_FieldAccess(EOS(STATIC_912), o196, o242, java.lang.Object(List(EOC, o270)), java.lang.Object(List(EOC, o270)), java.lang.Object(List(EOC, o270))) → 917_0_getTail_Return(EOS(STATIC_917), o196, o242, java.lang.Object(List(EOC, o270)), java.lang.Object(List(EOC, o270)))
917_0_getTail_Return(EOS(STATIC_917), o196, o242, java.lang.Object(List(EOC, o270)), java.lang.Object(List(EOC, o270))) → 922_0_main_Store(EOS(STATIC_922), o196, o242, java.lang.Object(List(EOC, o270)))
922_0_main_Store(EOS(STATIC_922), o196, o242, java.lang.Object(List(EOC, o270))) → 924_0_main_Load(EOS(STATIC_924), o196, o242, java.lang.Object(List(EOC, o270)))
924_0_main_Load(EOS(STATIC_924), o196, o242, java.lang.Object(List(EOC, o270))) → 931_0_main_InvokeMethod(EOS(STATIC_931), o196, o242, java.lang.Object(List(EOC, o270)), java.lang.Object(List(EOC, o270)))
931_0_main_InvokeMethod(EOS(STATIC_931), o196, o242, java.lang.Object(List(EOC, o270)), java.lang.Object(List(EOC, o270))) → 937_1_main_InvokeMethod(937_0_length_ConstantStackPush(EOS(STATIC_937), java.lang.Object(List(EOC, o270))), o196, o242, java.lang.Object(List(EOC, o270)), java.lang.Object(List(EOC, o270)))
937_1_main_InvokeMethod(834_0_length_Return(EOS(STATIC_834), i111), o196, o242, java.lang.Object(List(EOC, o285)), java.lang.Object(List(EOC, o285))) → 963_0_length_Return(EOS(STATIC_963), o196, o242, java.lang.Object(List(EOC, o285)), java.lang.Object(List(EOC, o285)), i111)
963_0_length_Return(EOS(STATIC_963), o196, o242, java.lang.Object(List(EOC, o285)), java.lang.Object(List(EOC, o285)), i111) → 973_0_main_ConstantStackPush(EOS(STATIC_973), o196, o242, java.lang.Object(List(EOC, o285)), i111)
973_0_main_ConstantStackPush(EOS(STATIC_973), o196, o242, java.lang.Object(List(EOC, o285)), i111) → 983_0_main_IntArithmetic(EOS(STATIC_983), o196, o242, java.lang.Object(List(EOC, o285)), i111, 5)
983_0_main_IntArithmetic(EOS(STATIC_983), o196, o242, java.lang.Object(List(EOC, o285)), i111, matching1) → 994_0_main_NE(EOS(STATIC_994), o196, o242, java.lang.Object(List(EOC, o285)), %(i111, 5)) | =(matching1, 5)
994_0_main_NE(EOS(STATIC_994), o196, o242, java.lang.Object(List(EOC, o285)), i131) → 923_0_main_NE(EOS(STATIC_923), o196, o242, java.lang.Object(List(EOC, o285)), i131)
R rules:
346_0_length_ConstantStackPush(EOS(STATIC_346), o27) → 347_0_length_ConstantStackPush(EOS(STATIC_347), o27)
347_0_length_ConstantStackPush(EOS(STATIC_347), o27) → 350_0_length_ConstantStackPush(EOS(STATIC_350), o27)
845_0_length_ConstantStackPush(EOS(STATIC_845), o197) → 851_0_length_ConstantStackPush(EOS(STATIC_851), o197)
851_0_length_ConstantStackPush(EOS(STATIC_851), o197) → 350_0_length_ConstantStackPush(EOS(STATIC_350), o197)
896_0_length_ConstantStackPush(EOS(STATIC_896), o195) → 901_0_length_ConstantStackPush(EOS(STATIC_901), o195)
901_0_length_ConstantStackPush(EOS(STATIC_901), o195) → 350_0_length_ConstantStackPush(EOS(STATIC_350), o195)
1020_0_length_ConstantStackPush(EOS(STATIC_1020), o196) → 1024_0_length_ConstantStackPush(EOS(STATIC_1024), o196)
1024_0_length_ConstantStackPush(EOS(STATIC_1024), o196) → 350_0_length_ConstantStackPush(EOS(STATIC_350), o196)
1050_0_length_ConstantStackPush(EOS(STATIC_1050), o242) → 1054_0_length_ConstantStackPush(EOS(STATIC_1054), o242)
1054_0_length_ConstantStackPush(EOS(STATIC_1054), o242) → 350_0_length_ConstantStackPush(EOS(STATIC_350), o242)
1090_0_length_ConstantStackPush(EOS(STATIC_1090), o330) → 1094_0_length_ConstantStackPush(EOS(STATIC_1094), o330)
1094_0_length_ConstantStackPush(EOS(STATIC_1094), o330) → 350_0_length_ConstantStackPush(EOS(STATIC_350), o330)
1113_0_length_ConstantStackPush(EOS(STATIC_1113), o352) → 1118_0_length_ConstantStackPush(EOS(STATIC_1118), o352)
1118_0_length_ConstantStackPush(EOS(STATIC_1118), o352) → 350_0_length_ConstantStackPush(EOS(STATIC_350), o352)
1275_0_test_Load(EOS(STATIC_1275), o373, o492, o305) → 1280_0_test_Load(EOS(STATIC_1280), o373, o492, o305)
1280_0_test_Load(EOS(STATIC_1280), o373, o492, o305) → 1154_0_test_Load(EOS(STATIC_1154), o373, o492, o305)
937_0_length_ConstantStackPush(EOS(STATIC_937), java.lang.Object(List(EOC, o270))) → 943_0_length_ConstantStackPush(EOS(STATIC_943), java.lang.Object(List(EOC, o270)))
943_0_length_ConstantStackPush(EOS(STATIC_943), java.lang.Object(List(EOC, o270))) → 350_0_length_ConstantStackPush(EOS(STATIC_350), java.lang.Object(List(EOC, o270)))
350_0_length_ConstantStackPush(EOS(STATIC_350), o27) → 353_0_length_Store(EOS(STATIC_353), o27, 0)
353_0_length_Store(EOS(STATIC_353), o27, matching1) → 357_0_length_Load(EOS(STATIC_357), o27, 0) | =(matching1, 0)
357_0_length_Load(EOS(STATIC_357), o27, matching1) → 447_0_length_Load(EOS(STATIC_447), o27, 0) | =(matching1, 0)
447_0_length_Load(EOS(STATIC_447), o75, i58) → 584_0_length_Load(EOS(STATIC_584), o75, i58)
584_0_length_Load(EOS(STATIC_584), o122, i76) → 715_0_length_Load(EOS(STATIC_715), o122, i76)
715_0_length_Load(EOS(STATIC_715), o177, i100) → 815_0_length_Load(EOS(STATIC_815), o177, i100)
815_0_length_Load(EOS(STATIC_815), o219, i111) → 820_0_length_NULL(EOS(STATIC_820), o219, i111, o219)
820_0_length_NULL(EOS(STATIC_820), java.lang.Object(o227sub), i111, java.lang.Object(o227sub)) → 823_0_length_NULL(EOS(STATIC_823), java.lang.Object(o227sub), i111, java.lang.Object(o227sub))
820_0_length_NULL(EOS(STATIC_820), NULL, i111, NULL) → 824_0_length_NULL(EOS(STATIC_824), NULL, i111, NULL)
823_0_length_NULL(EOS(STATIC_823), java.lang.Object(o227sub), i111, java.lang.Object(o227sub)) → 828_0_length_Load(EOS(STATIC_828), java.lang.Object(o227sub), i111)
824_0_length_NULL(EOS(STATIC_824), NULL, i111, NULL) → 829_0_length_Load(EOS(STATIC_829), i111)
828_0_length_Load(EOS(STATIC_828), java.lang.Object(o227sub), i111) → 833_0_length_InvokeMethod(EOS(STATIC_833), i111, java.lang.Object(o227sub))
829_0_length_Load(EOS(STATIC_829), i111) → 834_0_length_Return(EOS(STATIC_834), i111)
833_0_length_InvokeMethod(EOS(STATIC_833), i111, java.lang.Object(o227sub)) → 837_0_getTail_Load(EOS(STATIC_837), i111, java.lang.Object(o227sub), java.lang.Object(o227sub))
837_0_getTail_Load(EOS(STATIC_837), i111, java.lang.Object(o227sub), java.lang.Object(o227sub)) → 847_0_getTail_FieldAccess(EOS(STATIC_847), i111, java.lang.Object(o227sub), java.lang.Object(o227sub))
847_0_getTail_FieldAccess(EOS(STATIC_847), i111, java.lang.Object(o227sub), java.lang.Object(o227sub)) → 854_0_getTail_FieldAccess(EOS(STATIC_854), i111, java.lang.Object(o227sub), java.lang.Object(o227sub))
847_0_getTail_FieldAccess(EOS(STATIC_847), i111, java.lang.Object(o227sub), java.lang.Object(o227sub)) → 855_0_getTail_FieldAccess(EOS(STATIC_855), i111, java.lang.Object(o227sub), java.lang.Object(o227sub))
854_0_getTail_FieldAccess(EOS(STATIC_854), i111, java.lang.Object(List(EOC, o236)), java.lang.Object(List(EOC, o236))) → 856_0_getTail_FieldAccess(EOS(STATIC_856), i111, java.lang.Object(List(EOC, o236)), java.lang.Object(List(EOC, o236)))
855_0_getTail_FieldAccess(EOS(STATIC_855), i111, java.lang.Object(List(EOC, o239)), java.lang.Object(List(EOC, o239))) → 857_0_getTail_FieldAccess(EOS(STATIC_857), i111, java.lang.Object(List(EOC, o239)), java.lang.Object(List(EOC, o239)))
856_0_getTail_FieldAccess(EOS(STATIC_856), i111, java.lang.Object(List(EOC, o236)), java.lang.Object(List(EOC, o236))) → 862_0_getTail_Return(EOS(STATIC_862), i111, java.lang.Object(List(EOC, o236)), o236)
857_0_getTail_FieldAccess(EOS(STATIC_857), i111, java.lang.Object(List(EOC, o239)), java.lang.Object(List(EOC, o239))) → 864_0_getTail_Return(EOS(STATIC_864), i111, java.lang.Object(List(EOC, o239)), o239)
862_0_getTail_Return(EOS(STATIC_862), i111, java.lang.Object(List(EOC, o236)), o236) → 867_0_length_Store(EOS(STATIC_867), i111, o236)
864_0_getTail_Return(EOS(STATIC_864), i111, java.lang.Object(List(EOC, o239)), o239) → 868_0_length_Store(EOS(STATIC_868), i111, o239)
867_0_length_Store(EOS(STATIC_867), i111, o236) → 872_0_length_Inc(EOS(STATIC_872), o236, i111)
868_0_length_Store(EOS(STATIC_868), i111, o239) → 873_0_length_Inc(EOS(STATIC_873), o239, i111)
872_0_length_Inc(EOS(STATIC_872), o236, i111) → 875_0_length_JMP(EOS(STATIC_875), o236, +(i111, 1)) | >=(i111, 0)
873_0_length_Inc(EOS(STATIC_873), o239, i111) → 877_0_length_JMP(EOS(STATIC_877), o239, +(i111, 1)) | >=(i111, 0)
875_0_length_JMP(EOS(STATIC_875), o236, i117) → 883_0_length_Load(EOS(STATIC_883), o236, i117)
877_0_length_JMP(EOS(STATIC_877), o239, i118) → 886_0_length_Load(EOS(STATIC_886), o239, i118)
883_0_length_Load(EOS(STATIC_883), o236, i117) → 815_0_length_Load(EOS(STATIC_815), o236, i117)
886_0_length_Load(EOS(STATIC_886), o239, i118) → 815_0_length_Load(EOS(STATIC_815), o239, i118)
1154_0_test_Load(EOS(STATIC_1154), o388, o352, o305) → 1418_0_test_Load(EOS(STATIC_1418), o388, o352, o305)
1418_0_test_Load(EOS(STATIC_1418), o804, o805, o806) → 1516_0_test_Load(EOS(STATIC_1516), o804, o805, o806)
1516_0_test_Load(EOS(STATIC_1516), o902, o903, o904) → 1518_0_test_NULL(EOS(STATIC_1518), o902, o903, o904, o902)
1518_0_test_NULL(EOS(STATIC_1518), java.lang.Object(o921sub), o903, o904, java.lang.Object(o921sub)) → 1519_0_test_NULL(EOS(STATIC_1519), java.lang.Object(o921sub), o903, o904, java.lang.Object(o921sub))
1518_0_test_NULL(EOS(STATIC_1518), NULL, o903, o904, NULL) → 1520_0_test_NULL(EOS(STATIC_1520), NULL, o903, o904, NULL)
1519_0_test_NULL(EOS(STATIC_1519), java.lang.Object(o921sub), o903, o904, java.lang.Object(o921sub)) → 1521_0_test_New(EOS(STATIC_1521), java.lang.Object(o921sub), o903, o904)
1520_0_test_NULL(EOS(STATIC_1520), NULL, o903, o904, NULL) → 1522_0_test_Return(EOS(STATIC_1522))
1521_0_test_New(EOS(STATIC_1521), java.lang.Object(o921sub), o903, o904) → 1523_0_test_Duplicate(EOS(STATIC_1523), java.lang.Object(o921sub), o903, o904, java.lang.Object(List(EOC, NULL)))
1523_0_test_Duplicate(EOS(STATIC_1523), java.lang.Object(o921sub), o903, o904, java.lang.Object(List(EOC, NULL))) → 1525_0_test_Load(EOS(STATIC_1525), java.lang.Object(o921sub), o903, o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)))
1525_0_test_Load(EOS(STATIC_1525), java.lang.Object(o921sub), o903, o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL))) → 1526_0_test_Load(EOS(STATIC_1526), java.lang.Object(o921sub), o903, o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub))
1526_0_test_Load(EOS(STATIC_1526), java.lang.Object(o921sub), o903, o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub)) → 1528_0_test_InvokeMethod(EOS(STATIC_1528), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903)
1528_0_test_InvokeMethod(EOS(STATIC_1528), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903) → 1529_0_<init>_Load(EOS(STATIC_1529), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903)
1529_0_<init>_Load(EOS(STATIC_1529), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903) → 1530_0_<init>_InvokeMethod(EOS(STATIC_1530), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)))
1530_0_<init>_InvokeMethod(EOS(STATIC_1530), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL))) → 1531_0_<init>_Load(EOS(STATIC_1531), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903)
1531_0_<init>_Load(EOS(STATIC_1531), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903) → 1533_0_<init>_Load(EOS(STATIC_1533), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)))
1533_0_<init>_Load(EOS(STATIC_1533), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL))) → 1534_0_<init>_FieldAccess(EOS(STATIC_1534), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub))
1534_0_<init>_FieldAccess(EOS(STATIC_1534), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub)) → 1537_0_<init>_Load(EOS(STATIC_1537), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), o903)
1537_0_<init>_Load(EOS(STATIC_1537), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), o903) → 1539_0_<init>_Load(EOS(STATIC_1539), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, o903, java.lang.Object(List(EOC, NULL)))
1539_0_<init>_Load(EOS(STATIC_1539), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, o903, java.lang.Object(List(EOC, NULL))) → 1540_0_<init>_FieldAccess(EOS(STATIC_1540), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), o903)
1540_0_<init>_FieldAccess(EOS(STATIC_1540), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), o903) → 1544_0_<init>_Return(EOS(STATIC_1544), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o903)), java.lang.Object(o921sub), o903)
1544_0_<init>_Return(EOS(STATIC_1544), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o903)), java.lang.Object(o921sub), o903) → 1545_0_test_Store(EOS(STATIC_1545), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, o903)))
1545_0_test_Store(EOS(STATIC_1545), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, o903))) → 1547_0_test_New(EOS(STATIC_1547), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904)
1547_0_test_New(EOS(STATIC_1547), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904) → 1548_0_test_Duplicate(EOS(STATIC_1548), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)))
1548_0_test_Duplicate(EOS(STATIC_1548), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL))) → 1549_0_test_Load(EOS(STATIC_1549), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)))
1549_0_test_Load(EOS(STATIC_1549), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL))) → 1551_0_test_Load(EOS(STATIC_1551), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)))
1551_0_test_Load(EOS(STATIC_1551), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903))) → 1552_0_test_InvokeMethod(EOS(STATIC_1552), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904)
1552_0_test_InvokeMethod(EOS(STATIC_1552), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904) → 1554_0_<init>_Load(EOS(STATIC_1554), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904)
1554_0_<init>_Load(EOS(STATIC_1554), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904) → 1555_0_<init>_InvokeMethod(EOS(STATIC_1555), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)))
1555_0_<init>_InvokeMethod(EOS(STATIC_1555), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL))) → 1558_0_<init>_Load(EOS(STATIC_1558), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904)
1558_0_<init>_Load(EOS(STATIC_1558), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904) → 1559_0_<init>_Load(EOS(STATIC_1559), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)))
1559_0_<init>_Load(EOS(STATIC_1559), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL))) → 1561_0_<init>_FieldAccess(EOS(STATIC_1561), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)))
1561_0_<init>_FieldAccess(EOS(STATIC_1561), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903))) → 1568_0_<init>_Load(EOS(STATIC_1568), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), o904)
1568_0_<init>_Load(EOS(STATIC_1568), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), o904) → 1570_0_<init>_Load(EOS(STATIC_1570), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, o904, java.lang.Object(List(EOC, NULL)))
1570_0_<init>_Load(EOS(STATIC_1570), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, o904, java.lang.Object(List(EOC, NULL))) → 1571_0_<init>_FieldAccess(EOS(STATIC_1571), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), o904)
1571_0_<init>_FieldAccess(EOS(STATIC_1571), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), o904) → 1576_0_<init>_Return(EOS(STATIC_1576), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o903)), o904)
1576_0_<init>_Return(EOS(STATIC_1576), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o903)), o904) → 1577_0_test_Store(EOS(STATIC_1577), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1577_0_test_Store(EOS(STATIC_1577), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904))) → 1579_0_test_Load(EOS(STATIC_1579), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1579_0_test_Load(EOS(STATIC_1579), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904))) → 1581_0_test_InvokeMethod(EOS(STATIC_1581), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub))
1581_0_test_InvokeMethod(EOS(STATIC_1581), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub)) → 1583_0_getTail_Load(EOS(STATIC_1583), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub))
1583_0_getTail_Load(EOS(STATIC_1583), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub)) → 1586_0_getTail_FieldAccess(EOS(STATIC_1586), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub))
1586_0_getTail_FieldAccess(EOS(STATIC_1586), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub)) → 1588_0_getTail_FieldAccess(EOS(STATIC_1588), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub))
1586_0_getTail_FieldAccess(EOS(STATIC_1586), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub)) → 1589_0_getTail_FieldAccess(EOS(STATIC_1589), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub))
1588_0_getTail_FieldAccess(EOS(STATIC_1588), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o977)), java.lang.Object(List(EOC, o977))) → 1591_0_getTail_FieldAccess(EOS(STATIC_1591), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o977)), java.lang.Object(List(EOC, o977)))
1589_0_getTail_FieldAccess(EOS(STATIC_1589), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o980)), java.lang.Object(List(EOC, o980))) → 1592_0_getTail_FieldAccess(EOS(STATIC_1592), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o980)), java.lang.Object(List(EOC, o980)))
1591_0_getTail_FieldAccess(EOS(STATIC_1591), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o977)), java.lang.Object(List(EOC, o977))) → 1594_0_getTail_Return(EOS(STATIC_1594), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o977)), o977)
1592_0_getTail_FieldAccess(EOS(STATIC_1592), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o980)), java.lang.Object(List(EOC, o980))) → 1595_0_getTail_Return(EOS(STATIC_1595), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o980)), o980)
1594_0_getTail_Return(EOS(STATIC_1594), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o977)), o977) → 1597_0_test_Store(EOS(STATIC_1597), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), o977)
1595_0_getTail_Return(EOS(STATIC_1595), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o980)), o980) → 1598_0_test_Store(EOS(STATIC_1598), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), o980)
1597_0_test_Store(EOS(STATIC_1597), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), o977) → 1600_0_test_JMP(EOS(STATIC_1600), o977, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1598_0_test_Store(EOS(STATIC_1598), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), o980) → 1601_0_test_JMP(EOS(STATIC_1601), o980, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1600_0_test_JMP(EOS(STATIC_1600), o977, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904))) → 1612_0_test_Load(EOS(STATIC_1612), o977, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1601_0_test_JMP(EOS(STATIC_1601), o980, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904))) → 1624_0_test_Load(EOS(STATIC_1624), o980, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1612_0_test_Load(EOS(STATIC_1612), o977, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904))) → 1516_0_test_Load(EOS(STATIC_1516), o977, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1624_0_test_Load(EOS(STATIC_1624), o980, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904))) → 1516_0_test_Load(EOS(STATIC_1516), o980, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))

Combined rules. Obtained 14 conditional rules for P and 13 conditional rules for R.


P rules:
346_1_main_InvokeMethod(834_0_length_Return(EOS(STATIC_834), x0), x1, x2, x3, x1) → 845_1_main_InvokeMethod(845_0_length_ConstantStackPush(EOS(STATIC_845), x3), x2, x3, x1, x1, x3) | >(x0, 0)
845_1_main_InvokeMethod(834_0_length_Return(EOS(STATIC_834), x0), x1, x2, x3, x3, x2) → 896_1_main_InvokeMethod(896_0_length_ConstantStackPush(EOS(STATIC_896), x3), x1, x2, x3, x3) | <(0, %(x0, 3))
896_1_main_InvokeMethod(834_0_length_Return(EOS(STATIC_834), x0), x1, x2, x3, x3) → 923_0_main_NE(EOS(STATIC_923), x1, x2, x3, %(x0, 5))
923_0_main_NE(EOS(STATIC_923), x0, x1, x2, x3) → 1020_1_main_InvokeMethod(1020_0_length_ConstantStackPush(EOS(STATIC_1020), x0), x0, x1, x2, x0) | >(x3, 0)
1020_1_main_InvokeMethod(834_0_length_Return(EOS(STATIC_834), x0), x1, x2, x3, x1) → 1050_1_main_InvokeMethod(1050_0_length_ConstantStackPush(EOS(STATIC_1050), x2), x1, x2, x3, x0, x2)
1050_1_main_InvokeMethod(834_0_length_Return(EOS(STATIC_834), x0), x1, x2, x3, x4, x2) → 1090_1_main_InvokeMethod(1090_0_length_ConstantStackPush(EOS(STATIC_1090), x1), x1, x2, x3, x1) | <=(x4, x0)
1090_1_main_InvokeMethod(834_0_length_Return(EOS(STATIC_834), x0), x1, x2, x3, x1) → 1113_1_main_InvokeMethod(1113_0_length_ConstantStackPush(EOS(STATIC_1113), x2), x1, x2, x3, x0, x2)
1113_1_main_InvokeMethod(834_0_length_Return(EOS(STATIC_834), x0), x1, x2, java.lang.Object(List(EOC, x3)), x4, x2) → 1275_1_main_InvokeMethod(1275_0_test_Load(EOS(STATIC_1275), x1, x2, x3), x1, x2, x3, x1, x2, x3) | !(=(x4, x0))
1275_1_main_InvokeMethod(1522_0_test_Return(EOS(STATIC_1522)), x0, x1, x2, x0, x1, x2) → 346_1_main_InvokeMethod(346_0_length_ConstantStackPush(EOS(STATIC_346), x0), x0, x1, x2, x0)
1113_1_main_InvokeMethod(834_0_length_Return(EOS(STATIC_834), x0), x1, java.lang.Object(List(EOC, x2)), x3, x0, java.lang.Object(List(EOC, x2))) → 1275_1_main_InvokeMethod(1275_0_test_Load(EOS(STATIC_1275), x1, x2, x3), x1, x2, x3, x1, x2, x3)
1050_1_main_InvokeMethod(834_0_length_Return(EOS(STATIC_834), x0), java.lang.Object(List(EOC, x1)), x2, x3, x4, x2) → 1275_1_main_InvokeMethod(1275_0_test_Load(EOS(STATIC_1275), x1, x2, x3), x1, x2, x3, x1, x2, x3) | >(x4, x0)
923_0_main_NE(EOS(STATIC_923), x0, x1, java.lang.Object(List(EOC, x2)), 0) → 1020_1_main_InvokeMethod(1020_0_length_ConstantStackPush(EOS(STATIC_1020), x0), x0, x1, x2, x0)
845_1_main_InvokeMethod(834_0_length_Return(EOS(STATIC_834), x0), x1, x2, java.lang.Object(List(EOC, x3)), java.lang.Object(List(EOC, x3)), x2) → 937_1_main_InvokeMethod(937_0_length_ConstantStackPush(EOS(STATIC_937), java.lang.Object(List(EOC, x3))), x1, x2, java.lang.Object(List(EOC, x3)), java.lang.Object(List(EOC, x3))) | =(0, %(x0, 3))
937_1_main_InvokeMethod(834_0_length_Return(EOS(STATIC_834), x0), x1, x2, java.lang.Object(List(EOC, x3)), java.lang.Object(List(EOC, x3))) → 923_0_main_NE(EOS(STATIC_923), x1, x2, java.lang.Object(List(EOC, x3)), %(x0, 5))
R rules:
346_0_length_ConstantStackPush(EOS(STATIC_346), x0) → 820_0_length_NULL(EOS(STATIC_820), x0, 0, x0)
845_0_length_ConstantStackPush(EOS(STATIC_845), x0) → 820_0_length_NULL(EOS(STATIC_820), x0, 0, x0)
896_0_length_ConstantStackPush(EOS(STATIC_896), x0) → 820_0_length_NULL(EOS(STATIC_820), x0, 0, x0)
1020_0_length_ConstantStackPush(EOS(STATIC_1020), x0) → 820_0_length_NULL(EOS(STATIC_820), x0, 0, x0)
1050_0_length_ConstantStackPush(EOS(STATIC_1050), x0) → 820_0_length_NULL(EOS(STATIC_820), x0, 0, x0)
1090_0_length_ConstantStackPush(EOS(STATIC_1090), x0) → 820_0_length_NULL(EOS(STATIC_820), x0, 0, x0)
1113_0_length_ConstantStackPush(EOS(STATIC_1113), x0) → 820_0_length_NULL(EOS(STATIC_820), x0, 0, x0)
937_0_length_ConstantStackPush(EOS(STATIC_937), java.lang.Object(List(EOC, x0))) → 820_0_length_NULL(EOS(STATIC_820), java.lang.Object(List(EOC, x0)), 0, java.lang.Object(List(EOC, x0)))
820_0_length_NULL(EOS(STATIC_820), NULL, x0, NULL) → 834_0_length_Return(EOS(STATIC_834), x0)
820_0_length_NULL(EOS(STATIC_820), java.lang.Object(List(EOC, x0)), x1, java.lang.Object(List(EOC, x0))) → 820_0_length_NULL(EOS(STATIC_820), x0, +(x1, 1), x0) | >(+(x1, 1), 0)
1275_0_test_Load(EOS(STATIC_1275), x0, x1, x2) → 1518_0_test_NULL(EOS(STATIC_1518), x0, x1, x2, x0)
1518_0_test_NULL(EOS(STATIC_1518), NULL, x0, x1, NULL) → 1522_0_test_Return(EOS(STATIC_1522))
1518_0_test_NULL(EOS(STATIC_1518), java.lang.Object(List(EOC, x0)), x1, x2, java.lang.Object(List(EOC, x0))) → 1518_0_test_NULL(EOS(STATIC_1518), x0, java.lang.Object(List(EOC, x1)), java.lang.Object(List(EOC, x2)), x0)

Filtered ground terms:



923_0_main_NE(x1, x2, x3, x4, x5) → 923_0_main_NE(x2, x3, x4, x5)
List(x1, x2) → List(x2)
834_0_length_Return(x1, x2) → 834_0_length_Return(x2)
937_0_length_ConstantStackPush(x1, x2) → 937_0_length_ConstantStackPush(x2)
1020_0_length_ConstantStackPush(x1, x2) → 1020_0_length_ConstantStackPush(x2)
1275_0_test_Load(x1, x2, x3, x4) → 1275_0_test_Load(x2, x3, x4)
346_0_length_ConstantStackPush(x1, x2) → 346_0_length_ConstantStackPush(x2)
1522_0_test_Return(x1) → 1522_0_test_Return
1113_0_length_ConstantStackPush(x1, x2) → 1113_0_length_ConstantStackPush(x2)
1090_0_length_ConstantStackPush(x1, x2) → 1090_0_length_ConstantStackPush(x2)
1050_0_length_ConstantStackPush(x1, x2) → 1050_0_length_ConstantStackPush(x2)
Cond_923_0_main_NE(x1, x2, x3, x4, x5, x6) → Cond_923_0_main_NE(x1, x3, x4, x5, x6)
896_0_length_ConstantStackPush(x1, x2) → 896_0_length_ConstantStackPush(x2)
845_0_length_ConstantStackPush(x1, x2) → 845_0_length_ConstantStackPush(x2)
1518_0_test_NULL(x1, x2, x3, x4, x5) → 1518_0_test_NULL(x2, x3, x4, x5)
820_0_length_NULL(x1, x2, x3, x4) → 820_0_length_NULL(x2, x3, x4)
Cond_820_0_length_NULL(x1, x2, x3, x4, x5) → Cond_820_0_length_NULL(x1, x3, x4, x5)

Filtered duplicate args:



346_1_main_InvokeMethod(x1, x2, x3, x4, x5) → 346_1_main_InvokeMethod(x1, x3, x4, x5)
Cond_346_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → Cond_346_1_main_InvokeMethod(x1, x2, x4, x5, x6)
845_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → 845_1_main_InvokeMethod(x1, x2, x5, x6)
Cond_845_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → Cond_845_1_main_InvokeMethod(x1, x2, x3, x6, x7)
896_1_main_InvokeMethod(x1, x2, x3, x4, x5) → 896_1_main_InvokeMethod(x1, x2, x3, x5)
1020_1_main_InvokeMethod(x1, x2, x3, x4, x5) → 1020_1_main_InvokeMethod(x1, x3, x4, x5)
1050_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → 1050_1_main_InvokeMethod(x1, x2, x4, x5, x6)
Cond_1050_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → Cond_1050_1_main_InvokeMethod(x1, x2, x3, x5, x6, x7)
1090_1_main_InvokeMethod(x1, x2, x3, x4, x5) → 1090_1_main_InvokeMethod(x1, x3, x4, x5)
1113_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → 1113_1_main_InvokeMethod(x1, x2, x4, x5, x6)
Cond_1113_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → Cond_1113_1_main_InvokeMethod(x1, x2, x3, x5, x6, x7)
1275_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → 1275_1_main_InvokeMethod(x1, x5, x6, x7)
Cond_1050_1_main_InvokeMethod1(x1, x2, x3, x4, x5, x6, x7) → Cond_1050_1_main_InvokeMethod1(x1, x2, x3, x5, x6, x7)
Cond_845_1_main_InvokeMethod1(x1, x2, x3, x4, x5, x6, x7) → Cond_845_1_main_InvokeMethod1(x1, x2, x3, x6, x7)
937_1_main_InvokeMethod(x1, x2, x3, x4, x5) → 937_1_main_InvokeMethod(x1, x2, x3, x5)
820_0_length_NULL(x1, x2, x3) → 820_0_length_NULL(x2, x3)
Cond_820_0_length_NULL(x1, x2, x3, x4) → Cond_820_0_length_NULL(x1, x3, x4)
1518_0_test_NULL(x1, x2, x3, x4) → 1518_0_test_NULL(x2, x3, x4)

Filtered unneeded arguments:



Cond_346_1_main_InvokeMethod(x1, x2, x3, x4, x5) → Cond_346_1_main_InvokeMethod(x1, x3, x4, x5)
Cond_845_1_main_InvokeMethod(x1, x2, x3, x4, x5) → Cond_845_1_main_InvokeMethod(x1, x3, x4, x5)
Cond_923_0_main_NE(x1, x2, x3, x4, x5) → Cond_923_0_main_NE(x1, x2, x3, x4)
Cond_1050_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → Cond_1050_1_main_InvokeMethod(x1, x3, x4, x6)
Cond_1113_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → Cond_1113_1_main_InvokeMethod(x1, x3, x4, x6)
Cond_1050_1_main_InvokeMethod1(x1, x2, x3, x4, x5, x6) → Cond_1050_1_main_InvokeMethod1(x1, x3, x4, x6)
Cond_845_1_main_InvokeMethod1(x1, x2, x3, x4, x5) → Cond_845_1_main_InvokeMethod1(x1, x3, x4, x5)
1518_0_test_NULL(x1, x2, x3) → 1518_0_test_NULL(x3)
1275_0_test_Load(x1, x2, x3) → 1275_0_test_Load(x1)

Filtered modulo operations.


Combined rules. Obtained 14 conditional rules for P and 13 conditional rules for R.


P rules:
346_1_main_InvokeMethod(834_0_length_Return(x0), x2, x3, x1) → 845_1_main_InvokeMethod(845_0_length_ConstantStackPush(x3), x2, x1, x3) | >(x0, 0)
845_1_main_InvokeMethod(834_0_length_Return(x0), x1, x3, x2) → 896_1_main_InvokeMethod(896_0_length_ConstantStackPush(x3), x1, x2, x3)
896_1_main_InvokeMethod(834_0_length_Return(x0), x1, x2, x3) → 923_0_main_NE(x1, x2, x3, fresh2)
923_0_main_NE(x0, x1, x2, x3) → 1020_1_main_InvokeMethod(1020_0_length_ConstantStackPush(x0), x1, x2, x0) | >(x3, 0)
1020_1_main_InvokeMethod(834_0_length_Return(x0), x2, x3, x1) → 1050_1_main_InvokeMethod(1050_0_length_ConstantStackPush(x2), x1, x3, x0, x2)
1050_1_main_InvokeMethod(834_0_length_Return(x0), x1, x3, x4, x2) → 1090_1_main_InvokeMethod(1090_0_length_ConstantStackPush(x1), x2, x3, x1) | <=(x4, x0)
1090_1_main_InvokeMethod(834_0_length_Return(x0), x2, x3, x1) → 1113_1_main_InvokeMethod(1113_0_length_ConstantStackPush(x2), x1, x3, x0, x2)
1113_1_main_InvokeMethod(834_0_length_Return(x0), x1, java.lang.Object(List(x3)), x4, x2) → 1275_1_main_InvokeMethod(1275_0_test_Load(x1), x1, x2, x3) | !(=(x4, x0))
1275_1_main_InvokeMethod(1522_0_test_Return, x0, x1, x2) → 346_1_main_InvokeMethod(346_0_length_ConstantStackPush(x0), x1, x2, x0)
1113_1_main_InvokeMethod(834_0_length_Return(x0), x1, x3, x0, java.lang.Object(List(x2))) → 1275_1_main_InvokeMethod(1275_0_test_Load(x1), x1, x2, x3)
1050_1_main_InvokeMethod(834_0_length_Return(x0), java.lang.Object(List(x1)), x3, x4, x2) → 1275_1_main_InvokeMethod(1275_0_test_Load(x1), x1, x2, x3) | >(x4, x0)
923_0_main_NE(x0, x1, java.lang.Object(List(x2)), 0) → 1020_1_main_InvokeMethod(1020_0_length_ConstantStackPush(x0), x1, x2, x0)
845_1_main_InvokeMethod(834_0_length_Return(x0), x1, java.lang.Object(List(x3)), x2) → 937_1_main_InvokeMethod(937_0_length_ConstantStackPush(java.lang.Object(List(x3))), x1, x2, java.lang.Object(List(x3)))
937_1_main_InvokeMethod(834_0_length_Return(x0), x1, x2, java.lang.Object(List(x3))) → 923_0_main_NE(x1, x2, java.lang.Object(List(x3)), fresh2)
R rules:
346_0_length_ConstantStackPush(x0) → 820_0_length_NULL(0, x0)
845_0_length_ConstantStackPush(x0) → 820_0_length_NULL(0, x0)
896_0_length_ConstantStackPush(x0) → 820_0_length_NULL(0, x0)
1020_0_length_ConstantStackPush(x0) → 820_0_length_NULL(0, x0)
1050_0_length_ConstantStackPush(x0) → 820_0_length_NULL(0, x0)
1090_0_length_ConstantStackPush(x0) → 820_0_length_NULL(0, x0)
1113_0_length_ConstantStackPush(x0) → 820_0_length_NULL(0, x0)
937_0_length_ConstantStackPush(java.lang.Object(List(x0))) → 820_0_length_NULL(0, java.lang.Object(List(x0)))
820_0_length_NULL(x0, NULL) → 834_0_length_Return(x0)
820_0_length_NULL(x1, java.lang.Object(List(x0))) → 820_0_length_NULL(+(x1, 1), x0) | >(x1, -1)
1275_0_test_Load(x0) → 1518_0_test_NULL(x0)
1518_0_test_NULL(NULL) → 1522_0_test_Return
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)

Performed bisimulation on rules. Used the following equivalence classes: {[346_0_length_ConstantStackPush_1, 845_0_length_ConstantStackPush_1, 896_0_length_ConstantStackPush_1, 1020_0_length_ConstantStackPush_1, 1050_0_length_ConstantStackPush_1, 1090_0_length_ConstantStackPush_1, 1113_0_length_ConstantStackPush_1]=346_0_length_ConstantStackPush_1, [List_1, 834_0_length_Return_1]=List_1}


Finished conversion. Obtained 19 rules for P and 8 rules for R. System has predefined symbols.


P rules:
346_1_MAIN_INVOKEMETHOD(List(x0), x2, x3, x1) → COND_346_1_MAIN_INVOKEMETHOD(>(x0, 0), List(x0), x2, x3, x1)
COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0), x2, x3, x1) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3), x2, x1, x3)
845_1_MAIN_INVOKEMETHOD(List(x0), x1, x3, x2) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3), x1, x2, x3)
896_1_MAIN_INVOKEMETHOD(List(x0), x1, x2, x3) → 923_0_MAIN_NE(x1, x2, x3, fresh2)
923_0_MAIN_NE(x0, x1, x2, x3) → COND_923_0_MAIN_NE(>(x3, 0), x0, x1, x2, x3)
COND_923_0_MAIN_NE(TRUE, x0, x1, x2, x3) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0), x1, x2, x0)
1020_1_MAIN_INVOKEMETHOD(List(x0), x2, x3, x1) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2), x1, x3, x0, x2)
1050_1_MAIN_INVOKEMETHOD(List(x0), x1, x3, x4, x2) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4, x0), List(x0), x1, x3, x4, x2)
COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0), x1, x3, x4, x2) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1), x2, x3, x1)
1090_1_MAIN_INVOKEMETHOD(List(x0), x2, x3, x1) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2), x1, x3, x0, x2)
1113_1_MAIN_INVOKEMETHOD(List(x0), x1, java.lang.Object(List(x3)), x4, x2) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4, x0)), List(x0), x1, java.lang.Object(List(x3)), x4, x2)
COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0), x1, java.lang.Object(List(x3)), x4, x2) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1), x1, x2, x3)
1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0, x1, x2) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0), x1, x2, x0)
1113_1_MAIN_INVOKEMETHOD(List(x0), x1, x3, x0, java.lang.Object(List(x2))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1), x1, x2, x3)
1050_1_MAIN_INVOKEMETHOD(List(x0), java.lang.Object(List(x1)), x3, x4, x2) → COND_1050_1_MAIN_INVOKEMETHOD1(>(x4, x0), List(x0), java.lang.Object(List(x1)), x3, x4, x2)
COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0), java.lang.Object(List(x1)), x3, x4, x2) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1), x1, x2, x3)
923_0_MAIN_NE(x0, x1, java.lang.Object(List(x2)), 0) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0), x1, x2, x0)
845_1_MAIN_INVOKEMETHOD(List(x0), x1, java.lang.Object(List(x3)), x2) → 937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3))), x1, x2, java.lang.Object(List(x3)))
937_1_MAIN_INVOKEMETHOD(List(x0), x1, x2, java.lang.Object(List(x3))) → 923_0_MAIN_NE(x1, x2, java.lang.Object(List(x3)), fresh2)
R rules:
346_0_length_ConstantStackPush(x0) → 820_0_length_NULL(0, x0)
937_0_length_ConstantStackPush(java.lang.Object(List(x0))) → 820_0_length_NULL(0, java.lang.Object(List(x0)))
820_0_length_NULL(x0, NULL) → List(x0)
820_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_820_0_length_NULL(>(x1, -1), x1, java.lang.Object(List(x0)))
Cond_820_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 820_0_length_NULL(+(x1, 1), x0)
1275_0_test_Load(x0) → 1518_0_test_NULL(x0)
1518_0_test_NULL(NULL) → 1522_0_test_Return
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)

(32) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
346_0_length_ConstantStackPush(x0) → 820_0_length_NULL(0, x0)
937_0_length_ConstantStackPush(java.lang.Object(List(x0))) → 820_0_length_NULL(0, java.lang.Object(List(x0)))
820_0_length_NULL(x0, NULL) → List(x0)
820_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_820_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_820_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 820_0_length_NULL(x1 + 1, x0)
1275_0_test_Load(x0) → 1518_0_test_NULL(x0)
1518_0_test_NULL(NULL) → 1522_0_test_Return
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)

The integer pair graph contains the following rules and edges:
(0): 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(x0[0] > 0, List(x0[0]), x2[0], x3[0], x1[0])
(1): COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
(2): 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
(3): 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
(4): 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(x3[4] > 0, x0[4], x1[4], x2[4], x3[4])
(5): COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
(6): 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
(7): 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(x4[7] <= x0[7], List(x0[7]), x1[7], x3[7], x4[7], x2[7])
(8): COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
(9): 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
(10): 1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(x4[10] = x0[10]), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
(11): COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
(12): 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
(13): 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
(14): 1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(x4[14] > x0[14], List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
(15): COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])
(16): 923_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])
(17): 845_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17]) → 937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))
(18): 937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18]))) → 923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])

(0) -> (1), if (x0[0] > 0List(x0[0]) →* List(x0[1])∧x2[0]* x2[1]x3[0]* x3[1]x1[0]* x1[1])


(1) -> (2), if (346_0_length_ConstantStackPush(x3[1]) →* List(x0[2])∧x2[1]* x1[2]x1[1]* x3[2]x3[1]* x2[2])


(1) -> (17), if (346_0_length_ConstantStackPush(x3[1]) →* List(x0[17])∧x2[1]* x1[17]x1[1]* java.lang.Object(List(x3[17]))∧x3[1]* x2[17])


(2) -> (3), if (346_0_length_ConstantStackPush(x3[2]) →* List(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x3[2]* x3[3])


(3) -> (4), if (x1[3]* x0[4]x2[3]* x1[4]x3[3]* x2[4]fresh2[3]* x3[4])


(3) -> (16), if (x1[3]* x0[16]x2[3]* x1[16]x3[3]* java.lang.Object(List(x2[16]))∧fresh2[3]* 0)


(4) -> (5), if (x3[4] > 0x0[4]* x0[5]x1[4]* x1[5]x2[4]* x2[5]x3[4]* x3[5])


(5) -> (6), if (346_0_length_ConstantStackPush(x0[5]) →* List(x0[6])∧x1[5]* x2[6]x2[5]* x3[6]x0[5]* x1[6])


(6) -> (7), if (346_0_length_ConstantStackPush(x2[6]) →* List(x0[7])∧x1[6]* x1[7]x3[6]* x3[7]x0[6]* x4[7]x2[6]* x2[7])


(6) -> (14), if (346_0_length_ConstantStackPush(x2[6]) →* List(x0[14])∧x1[6]* java.lang.Object(List(x1[14]))∧x3[6]* x3[14]x0[6]* x4[14]x2[6]* x2[14])


(7) -> (8), if (x4[7] <= x0[7]List(x0[7]) →* List(x0[8])∧x1[7]* x1[8]x3[7]* x3[8]x4[7]* x4[8]x2[7]* x2[8])


(8) -> (9), if (346_0_length_ConstantStackPush(x1[8]) →* List(x0[9])∧x2[8]* x2[9]x3[8]* x3[9]x1[8]* x1[9])


(9) -> (10), if (346_0_length_ConstantStackPush(x2[9]) →* List(x0[10])∧x1[9]* x1[10]x3[9]* java.lang.Object(List(x3[10]))∧x0[9]* x4[10]x2[9]* x2[10])


(9) -> (13), if (346_0_length_ConstantStackPush(x2[9]) →* List(x0[13])∧x1[9]* x1[13]x3[9]* x3[13]x0[9]* x0[13]x2[9]* java.lang.Object(List(x2[13])))


(10) -> (11), if (!(x4[10] = x0[10]) ∧List(x0[10]) →* List(x0[11])∧x1[10]* x1[11]java.lang.Object(List(x3[10])) →* java.lang.Object(List(x3[11]))∧x4[10]* x4[11]x2[10]* x2[11])


(11) -> (12), if (1275_0_test_Load(x1[11]) →* 1522_0_test_Returnx1[11]* x0[12]x2[11]* x1[12]x3[11]* x2[12])


(12) -> (0), if (346_0_length_ConstantStackPush(x0[12]) →* List(x0[0])∧x1[12]* x2[0]x2[12]* x3[0]x0[12]* x1[0])


(13) -> (12), if (1275_0_test_Load(x1[13]) →* 1522_0_test_Returnx1[13]* x0[12]x2[13]* x1[12]x3[13]* x2[12])


(14) -> (15), if (x4[14] > x0[14]List(x0[14]) →* List(x0[15])∧java.lang.Object(List(x1[14])) →* java.lang.Object(List(x1[15]))∧x3[14]* x3[15]x4[14]* x4[15]x2[14]* x2[15])


(15) -> (12), if (1275_0_test_Load(x1[15]) →* 1522_0_test_Returnx1[15]* x0[12]x2[15]* x1[12]x3[15]* x2[12])


(16) -> (6), if (346_0_length_ConstantStackPush(x0[16]) →* List(x0[6])∧x1[16]* x2[6]x2[16]* x3[6]x0[16]* x1[6])


(17) -> (18), if (937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))) →* List(x0[18])∧x1[17]* x1[18]x2[17]* x2[18]java.lang.Object(List(x3[17])) →* java.lang.Object(List(x3[18])))


(18) -> (4), if (x1[18]* x0[4]x2[18]* x1[4]java.lang.Object(List(x3[18])) →* x2[4]fresh2[18]* x3[4])


(18) -> (16), if (x1[18]* x0[16]x2[18]* x1[16]java.lang.Object(List(x3[18])) →* java.lang.Object(List(x2[16]))∧fresh2[18]* 0)



The set Q consists of the following terms:
346_0_length_ConstantStackPush(x0)
937_0_length_ConstantStackPush(java.lang.Object(List(x0)))
820_0_length_NULL(x0, NULL)
820_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_820_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))
1275_0_test_Load(x0)
1518_0_test_NULL(NULL)
1518_0_test_NULL(java.lang.Object(List(x0)))

(33) IDPNonInfProof (SOUND transformation)

Used the following options for this NonInfProof:
IDPGPoloSolver: Range: [(-1,2)] IsNat: true Interpretation Shape Heuristic: aprove.DPFramework.IDPProblem.Processors.nonInf.poly.IdpDefaultShapeHeuristic@651d26b3 Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 1 Max Right Steps: 1

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair 346_1_MAIN_INVOKEMETHOD(List(x0), x2, x3, x1) → COND_346_1_MAIN_INVOKEMETHOD(>(x0, 0), List(x0), x2, x3, x1) the following chains were created:
  • We consider the chain 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]), COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]) which results in the following constraint:

    (1)    (>(x0[0], 0)=TRUEList(x0[0])=List(x0[1])∧x2[0]=x2[1]x3[0]=x3[1]x1[0]=x1[1]346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])∧(UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥))



    We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint:

    (2)    (>(x0[0], 0)=TRUE346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])∧(UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    (0 ≥ 0 ⇒ (UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[bni_107 + (-1)Bound*bni_107] + [(-1)bni_107]x1[0] ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    (0 ≥ 0 ⇒ (UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[bni_107 + (-1)Bound*bni_107] + [(-1)bni_107]x1[0] ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    (0 ≥ 0 ⇒ (UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[bni_107 + (-1)Bound*bni_107] + [(-1)bni_107]x1[0] ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (5) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (6)    (0 ≥ 0 ⇒ (UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[(-1)bni_107] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_107 + (-1)Bound*bni_107] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)







For Pair COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0), x2, x3, x1) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3), x2, x1, x3) the following chains were created:
  • We consider the chain 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]), COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]), 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]) which results in the following constraint:

    (7)    (>(x0[0], 0)=TRUEList(x0[0])=List(x0[1])∧x2[0]=x2[1]x3[0]=x3[1]x1[0]=x1[1]346_0_length_ConstantStackPush(x3[1])=List(x0[2])∧x2[1]=x1[2]x1[1]=x3[2]x3[1]=x2[2]COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1])≥NonInfC∧COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1])≥845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])∧(UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥))



    We simplified constraint (7) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (8)    (>(x0[0], 0)=TRUE820_0_length_NULL(0, x3[1])=List(x0[2]) ⇒ COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[0]), x2[0], x3[1], x1[0])≥NonInfC∧COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[0]), x2[0], x3[1], x1[0])≥845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[0], x1[0], x3[1])∧(UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥))



    We simplified constraint (8) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (9)    (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[bni_109 + (-1)Bound*bni_109] + [(-1)bni_109]x1[0] ≥ 0∧[(-1)bso_110] ≥ 0)



    We simplified constraint (9) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (10)    (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[bni_109 + (-1)Bound*bni_109] + [(-1)bni_109]x1[0] ≥ 0∧[(-1)bso_110] ≥ 0)



    We simplified constraint (10) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (11)    (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[bni_109 + (-1)Bound*bni_109] + [(-1)bni_109]x1[0] ≥ 0∧[(-1)bso_110] ≥ 0)



    We simplified constraint (11) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (12)    (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)bni_109] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_109 + (-1)Bound*bni_109] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)



  • We consider the chain 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]), COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]), 845_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17]) → 937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17]))) which results in the following constraint:

    (13)    (>(x0[0], 0)=TRUEList(x0[0])=List(x0[1])∧x2[0]=x2[1]x3[0]=x3[1]x1[0]=x1[1]346_0_length_ConstantStackPush(x3[1])=List(x0[17])∧x2[1]=x1[17]x1[1]=java.lang.Object(List(x3[17]))∧x3[1]=x2[17]COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1])≥NonInfC∧COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1])≥845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])∧(UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥))



    We simplified constraint (13) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (14)    (>(x0[0], 0)=TRUE820_0_length_NULL(0, x3[1])=List(x0[17]) ⇒ COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[0]), x2[0], x3[1], java.lang.Object(List(x3[17])))≥NonInfC∧COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[0]), x2[0], x3[1], java.lang.Object(List(x3[17])))≥845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[0], java.lang.Object(List(x3[17])), x3[1])∧(UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥))



    We simplified constraint (14) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (15)    (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[bni_109 + (-1)Bound*bni_109] ≥ 0∧[(-1)bso_110] ≥ 0)



    We simplified constraint (15) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (16)    (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[bni_109 + (-1)Bound*bni_109] ≥ 0∧[(-1)bso_110] ≥ 0)



    We simplified constraint (16) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (17)    (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[bni_109 + (-1)Bound*bni_109] ≥ 0∧[(-1)bso_110] ≥ 0)



    We simplified constraint (17) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (18)    (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_109 + (-1)Bound*bni_109] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)







For Pair 845_1_MAIN_INVOKEMETHOD(List(x0), x1, x3, x2) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3), x1, x2, x3) the following chains were created:
  • We consider the chain COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]), 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]), 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]) which results in the following constraint:

    (19)    (346_0_length_ConstantStackPush(x3[1])=List(x0[2])∧x2[1]=x1[2]x1[1]=x3[2]x3[1]=x2[2]346_0_length_ConstantStackPush(x3[2])=List(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]x3[2]=x3[3]845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2])≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2])≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (19) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (20)    (0=x0820_0_length_NULL(x0, x3[1])=List(x0[2])∧0=x1820_0_length_NULL(x1, x3[2])=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], x3[1])≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], x3[1])≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x2[1], x3[1], x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (20) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x0, x3[1])=List(x0[2]) which results in the following new constraints:

    (21)    (List(x2)=List(x0[2])∧0=x20=x1820_0_length_NULL(x1, x3[2])=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x2[1], NULL, x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))


    (22)    (Cond_820_0_length_NULL(>(x4, -1), x4, java.lang.Object(List(x3)))=List(x0[2])∧0=x40=x1820_0_length_NULL(x1, x3[2])=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x3)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x3)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x2[1], java.lang.Object(List(x3)), x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (21) using rules (I), (II), (III) which results in the following new constraint:

    (23)    (0=x1820_0_length_NULL(x1, x3[2])=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(0), x2[1], x3[2], NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], x3[2], NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x2[1], NULL, x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (22) using rule (VII) which results in the following new constraint:

    (24)    (>(x4, -1)=x10java.lang.Object(List(x3))=x11Cond_820_0_length_NULL(x10, x4, x11)=List(x0[2])∧0=x40=x1820_0_length_NULL(x1, x3[2])=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x3)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x3)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x2[1], java.lang.Object(List(x3)), x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (23) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x1, x3[2])=List(x0[3]) which results in the following new constraints:

    (25)    (List(x5)=List(x0[3])∧0=x5845_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[1], NULL, NULL)∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))


    (26)    (Cond_820_0_length_NULL(>(x7, -1), x7, java.lang.Object(List(x6)))=List(x0[3])∧0=x7845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x6)), NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x6)), NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x6))), x2[1], NULL, java.lang.Object(List(x6)))∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (25) using rules (I), (II), (IV) which results in the following new constraint:

    (27)    (845_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[1], NULL, NULL)∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (26) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (28)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x6)))=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x6)), NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x6)), NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x6))), x2[1], NULL, java.lang.Object(List(x6)))∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (27) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (29)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_111] = 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (24) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x1, x3[2])=List(x0[3]) which results in the following new constraints:

    (30)    (List(x12)=List(x0[3])∧>(x4, -1)=x10java.lang.Object(List(x3))=x11Cond_820_0_length_NULL(x10, x4, x11)=List(x0[2])∧0=x40=x12845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x3)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x3)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[1], java.lang.Object(List(x3)), NULL)∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))


    (31)    (Cond_820_0_length_NULL(>(x14, -1), x14, java.lang.Object(List(x13)))=List(x0[3])∧>(x4, -1)=x10java.lang.Object(List(x3))=x11Cond_820_0_length_NULL(x10, x4, x11)=List(x0[2])∧0=x40=x14845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x13)), java.lang.Object(List(x3)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x13)), java.lang.Object(List(x3)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x13))), x2[1], java.lang.Object(List(x3)), java.lang.Object(List(x13)))∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (30) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (32)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x3)))=List(x0[2]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x3)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x3)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[1], java.lang.Object(List(x3)), NULL)∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (31) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (33)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x3)))=List(x0[2])∧Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x13)))=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x13)), java.lang.Object(List(x3)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x13)), java.lang.Object(List(x3)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x13))), x2[1], java.lang.Object(List(x3)), java.lang.Object(List(x13)))∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (28) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (34)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[2 + (-1)bso_112] ≥ 0)



    We simplified constraint (32) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (35)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (33) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (36)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[2 + (-1)bso_112] ≥ 0)



    We simplified constraint (29) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (37)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_111] = 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (35) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (38)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (34) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (39)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[2 + (-1)bso_112] ≥ 0)



    We simplified constraint (36) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (40)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[2 + (-1)bso_112] ≥ 0)



    We simplified constraint (37) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (41)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_111] = 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (38) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (42)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (39) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (43)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[2 + (-1)bso_112] ≥ 0)



    We simplified constraint (40) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (44)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[2 + (-1)bso_112] ≥ 0)



    We simplified constraint (41) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (45)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_111] = 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (42) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (46)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (43) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (47)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_112] ≥ 0)



    We simplified constraint (44) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (48)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_112] ≥ 0)







For Pair 896_1_MAIN_INVOKEMETHOD(List(x0), x1, x2, x3) → 923_0_MAIN_NE(x1, x2, x3, fresh2) the following chains were created:
  • We consider the chain 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]), 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]), 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]) which results in the following constraint:

    (49)    (346_0_length_ConstantStackPush(x3[2])=List(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]x3[2]=x3[3]x1[3]=x0[4]x2[3]=x1[4]x3[3]=x2[4]fresh2[3]=x3[4]896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3])≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3])≥923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (49) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (50)    (0=x17820_0_length_NULL(x17, x3[2])=List(x0[3]) ⇒ 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], x3[2])≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], x3[2])≥923_0_MAIN_NE(x1[2], x2[2], x3[2], fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (50) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x17, x3[2])=List(x0[3]) which results in the following new constraints:

    (51)    (List(x18)=List(x0[3])∧0=x18896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], NULL)≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], NULL)≥923_0_MAIN_NE(x1[2], x2[2], NULL, fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))


    (52)    (Cond_820_0_length_NULL(>(x20, -1), x20, java.lang.Object(List(x19)))=List(x0[3])∧0=x20896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x19)))≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x19)))≥923_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(x19)), fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (51) using rules (I), (II), (III) which results in the following new constraint:

    (53)    (896_1_MAIN_INVOKEMETHOD(List(0), x1[2], x2[2], NULL)≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(0), x1[2], x2[2], NULL)≥923_0_MAIN_NE(x1[2], x2[2], NULL, fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (52) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (54)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x19)))=List(x0[3]) ⇒ 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x19)))≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x19)))≥923_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(x19)), fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (53) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (55)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_113] = 0∧[(-1)bso_114] ≥ 0)



    We simplified constraint (54) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (56)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_114] ≥ 0)



    We simplified constraint (55) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (57)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_113] = 0∧[(-1)bso_114] ≥ 0)



    We simplified constraint (56) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (58)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_114] ≥ 0)



    We simplified constraint (57) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (59)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_113] = 0∧[(-1)bso_114] ≥ 0)



    We simplified constraint (58) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (60)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_114] ≥ 0)



    We simplified constraint (59) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (61)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_113] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_114] ≥ 0)



    We simplified constraint (60) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (62)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_114] ≥ 0)



  • We consider the chain 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]), 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]), 923_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16]) which results in the following constraint:

    (63)    (346_0_length_ConstantStackPush(x3[2])=List(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]x3[2]=x3[3]x1[3]=x0[16]x2[3]=x1[16]x3[3]=java.lang.Object(List(x2[16]))∧fresh2[3]=0896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3])≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3])≥923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (63) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (64)    (1=x23820_0_length_NULL(x23, x2[16])=List(x0[3]) ⇒ 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x2[16])))≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x2[16])))≥923_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(x2[16])), 0)∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (64) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x23, x2[16])=List(x0[3]) which results in the following new constraints:

    (65)    (List(x24)=List(x0[3])∧1=x24896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(NULL)))≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(NULL)))≥923_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(NULL)), 0)∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))


    (66)    (Cond_820_0_length_NULL(>(x26, -1), x26, java.lang.Object(List(x25)))=List(x0[3])∧1=x26896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(java.lang.Object(List(x25)))))≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(java.lang.Object(List(x25)))))≥923_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(java.lang.Object(List(x25)))), 0)∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (65) using rules (I), (II), (III) which results in the following new constraint:

    (67)    (896_1_MAIN_INVOKEMETHOD(List(1), x1[2], x2[2], java.lang.Object(List(NULL)))≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(1), x1[2], x2[2], java.lang.Object(List(NULL)))≥923_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(NULL)), 0)∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (66) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (68)    (Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x25)))=List(x0[3]) ⇒ 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(java.lang.Object(List(x25)))))≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(java.lang.Object(List(x25)))))≥923_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(java.lang.Object(List(x25)))), 0)∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (67) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (69)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_113] = 0∧[(-1)bso_114] ≥ 0)



    We simplified constraint (68) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (70)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_114] ≥ 0)



    We simplified constraint (69) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (71)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_113] = 0∧[(-1)bso_114] ≥ 0)



    We simplified constraint (70) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (72)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_114] ≥ 0)



    We simplified constraint (71) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (73)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_113] = 0∧[(-1)bso_114] ≥ 0)



    We simplified constraint (72) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (74)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_114] ≥ 0)



    We simplified constraint (73) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (75)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_113] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_114] ≥ 0)



    We simplified constraint (74) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (76)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_114] ≥ 0)







For Pair 923_0_MAIN_NE(x0, x1, x2, x3) → COND_923_0_MAIN_NE(>(x3, 0), x0, x1, x2, x3) the following chains were created:
  • We consider the chain 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]), COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]) which results in the following constraint:

    (77)    (>(x3[4], 0)=TRUEx0[4]=x0[5]x1[4]=x1[5]x2[4]=x2[5]x3[4]=x3[5]923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥NonInfC∧923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])∧(UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥))



    We simplified constraint (77) using rule (IV) which results in the following new constraint:

    (78)    (>(x3[4], 0)=TRUE923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥NonInfC∧923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])∧(UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥))



    We simplified constraint (78) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (79)    (0 ≥ 0 ⇒ (UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧[(-1)bni_115 + (-1)Bound*bni_115] ≥ 0∧[(-1)bso_116] ≥ 0)



    We simplified constraint (79) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (80)    (0 ≥ 0 ⇒ (UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧[(-1)bni_115 + (-1)Bound*bni_115] ≥ 0∧[(-1)bso_116] ≥ 0)



    We simplified constraint (80) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (81)    (0 ≥ 0 ⇒ (UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧[(-1)bni_115 + (-1)Bound*bni_115] ≥ 0∧[(-1)bso_116] ≥ 0)



    We simplified constraint (81) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (82)    (0 ≥ 0 ⇒ (UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_115 + (-1)Bound*bni_115] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_116] ≥ 0)







For Pair COND_923_0_MAIN_NE(TRUE, x0, x1, x2, x3) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0), x1, x2, x0) the following chains were created:
  • We consider the chain 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]), COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]), 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]) which results in the following constraint:

    (83)    (>(x3[4], 0)=TRUEx0[4]=x0[5]x1[4]=x1[5]x2[4]=x2[5]x3[4]=x3[5]346_0_length_ConstantStackPush(x0[5])=List(x0[6])∧x1[5]=x2[6]x2[5]=x3[6]x0[5]=x1[6]COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5])≥NonInfC∧COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5])≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥))



    We simplified constraint (83) using rules (III), (IV), (REWRITING) which results in the following new constraint:

    (84)    (>(x3[4], 0)=TRUE820_0_length_NULL(0, x0[5])=List(x0[6]) ⇒ COND_923_0_MAIN_NE(TRUE, x0[5], x1[4], x2[4], x3[4])≥NonInfC∧COND_923_0_MAIN_NE(TRUE, x0[5], x1[4], x2[4], x3[4])≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[4], x2[4], x0[5])∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥))



    We simplified constraint (84) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (85)    (0 ≥ 0 ⇒ (UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧[(-1)bni_117 + (-1)Bound*bni_117] ≥ 0∧[(-1)bso_118] ≥ 0)



    We simplified constraint (85) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (86)    (0 ≥ 0 ⇒ (UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧[(-1)bni_117 + (-1)Bound*bni_117] ≥ 0∧[(-1)bso_118] ≥ 0)



    We simplified constraint (86) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (87)    (0 ≥ 0 ⇒ (UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧[(-1)bni_117 + (-1)Bound*bni_117] ≥ 0∧[(-1)bso_118] ≥ 0)



    We simplified constraint (87) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (88)    (0 ≥ 0 ⇒ (UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_117 + (-1)Bound*bni_117] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_118] ≥ 0)







For Pair 1020_1_MAIN_INVOKEMETHOD(List(x0), x2, x3, x1) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2), x1, x3, x0, x2) the following chains were created:
  • We consider the chain COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]), 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]), 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]) which results in the following constraint:

    (89)    (346_0_length_ConstantStackPush(x0[5])=List(x0[6])∧x1[5]=x2[6]x2[5]=x3[6]x0[5]=x1[6]346_0_length_ConstantStackPush(x2[6])=List(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x0[6]=x4[7]x2[6]=x2[7]1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (89) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (90)    (0=x29820_0_length_NULL(x29, x0[5])=List(x0[6])∧0=x30820_0_length_NULL(x30, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], x0[5])≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], x0[5])≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x0[5], x2[5], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (90) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x29, x0[5])=List(x0[6]) which results in the following new constraints:

    (91)    (List(x31)=List(x0[6])∧0=x310=x30820_0_length_NULL(x30, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), NULL, x2[5], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (92)    (Cond_820_0_length_NULL(>(x33, -1), x33, java.lang.Object(List(x32)))=List(x0[6])∧0=x330=x30820_0_length_NULL(x30, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x32)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x32)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x32)), x2[5], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (91) using rules (I), (II), (III) which results in the following new constraint:

    (93)    (0=x30820_0_length_NULL(x30, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(0), x2[6], x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), x2[6], x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), NULL, x2[5], 0, x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (92) using rule (VII) which results in the following new constraint:

    (94)    (>(x33, -1)=x39java.lang.Object(List(x32))=x40Cond_820_0_length_NULL(x39, x33, x40)=List(x0[6])∧0=x330=x30820_0_length_NULL(x30, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x32)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x32)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x32)), x2[5], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (93) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x30, x2[6])=List(x0[7]) which results in the following new constraints:

    (95)    (List(x34)=List(x0[7])∧0=x341020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), NULL, x2[5], 0, NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (96)    (Cond_820_0_length_NULL(>(x36, -1), x36, java.lang.Object(List(x35)))=List(x0[7])∧0=x361020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x35)), x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x35)), x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x35))), NULL, x2[5], 0, java.lang.Object(List(x35)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (95) using rules (I), (II), (IV) which results in the following new constraint:

    (97)    (1020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), NULL, x2[5], 0, NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (96) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (98)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x35)))=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x35)), x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x35)), x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x35))), NULL, x2[5], 0, java.lang.Object(List(x35)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (97) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (99)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (94) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x30, x2[6])=List(x0[7]) which results in the following new constraints:

    (100)    (List(x41)=List(x0[7])∧>(x33, -1)=x39java.lang.Object(List(x32))=x40Cond_820_0_length_NULL(x39, x33, x40)=List(x0[6])∧0=x330=x411020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x32)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x32)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x32)), x2[5], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (101)    (Cond_820_0_length_NULL(>(x43, -1), x43, java.lang.Object(List(x42)))=List(x0[7])∧>(x33, -1)=x39java.lang.Object(List(x32))=x40Cond_820_0_length_NULL(x39, x33, x40)=List(x0[6])∧0=x330=x431020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x42)), x2[5], java.lang.Object(List(x32)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x42)), x2[5], java.lang.Object(List(x32)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x42))), java.lang.Object(List(x32)), x2[5], x0[6], java.lang.Object(List(x42)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (100) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (102)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x32)))=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x32)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x32)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x32)), x2[5], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (101) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (103)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x32)))=List(x0[6])∧Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x42)))=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x42)), x2[5], java.lang.Object(List(x32)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x42)), x2[5], java.lang.Object(List(x32)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x42))), java.lang.Object(List(x32)), x2[5], x0[6], java.lang.Object(List(x42)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (98) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (104)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (102) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (105)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (103) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (106)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (99) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (107)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (105) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (108)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (104) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (109)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (106) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (110)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (107) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (111)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (108) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (112)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (109) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (113)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (110) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (114)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (111) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (115)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (112) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (116)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (113) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (117)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (114) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (118)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



  • We consider the chain 923_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16]), 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]), 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]) which results in the following constraint:

    (119)    (346_0_length_ConstantStackPush(x0[16])=List(x0[6])∧x1[16]=x2[6]x2[16]=x3[6]x0[16]=x1[6]346_0_length_ConstantStackPush(x2[6])=List(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x0[6]=x4[7]x2[6]=x2[7]1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (119) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (120)    (0=x46820_0_length_NULL(x46, x0[16])=List(x0[6])∧0=x47820_0_length_NULL(x47, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], x0[16])≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], x0[16])≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x0[16], x2[16], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (120) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x46, x0[16])=List(x0[6]) which results in the following new constraints:

    (121)    (List(x48)=List(x0[6])∧0=x480=x47820_0_length_NULL(x47, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), NULL, x2[16], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (122)    (Cond_820_0_length_NULL(>(x50, -1), x50, java.lang.Object(List(x49)))=List(x0[6])∧0=x500=x47820_0_length_NULL(x47, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], java.lang.Object(List(x49)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], java.lang.Object(List(x49)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x49)), x2[16], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (121) using rules (I), (II), (III) which results in the following new constraint:

    (123)    (0=x47820_0_length_NULL(x47, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(0), x2[6], x2[16], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), x2[6], x2[16], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), NULL, x2[16], 0, x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (122) using rule (VII) which results in the following new constraint:

    (124)    (>(x50, -1)=x56java.lang.Object(List(x49))=x57Cond_820_0_length_NULL(x56, x50, x57)=List(x0[6])∧0=x500=x47820_0_length_NULL(x47, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], java.lang.Object(List(x49)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], java.lang.Object(List(x49)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x49)), x2[16], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (123) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x47, x2[6])=List(x0[7]) which results in the following new constraints:

    (125)    (List(x51)=List(x0[7])∧0=x511020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[16], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[16], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), NULL, x2[16], 0, NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (126)    (Cond_820_0_length_NULL(>(x53, -1), x53, java.lang.Object(List(x52)))=List(x0[7])∧0=x531020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x52)), x2[16], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x52)), x2[16], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x52))), NULL, x2[16], 0, java.lang.Object(List(x52)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (125) using rules (I), (II), (IV) which results in the following new constraint:

    (127)    (1020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[16], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[16], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), NULL, x2[16], 0, NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (126) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (128)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x52)))=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x52)), x2[16], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x52)), x2[16], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x52))), NULL, x2[16], 0, java.lang.Object(List(x52)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (127) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (129)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (124) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x47, x2[6])=List(x0[7]) which results in the following new constraints:

    (130)    (List(x58)=List(x0[7])∧>(x50, -1)=x56java.lang.Object(List(x49))=x57Cond_820_0_length_NULL(x56, x50, x57)=List(x0[6])∧0=x500=x581020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(x49)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(x49)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x49)), x2[16], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (131)    (Cond_820_0_length_NULL(>(x60, -1), x60, java.lang.Object(List(x59)))=List(x0[7])∧>(x50, -1)=x56java.lang.Object(List(x49))=x57Cond_820_0_length_NULL(x56, x50, x57)=List(x0[6])∧0=x500=x601020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x59)), x2[16], java.lang.Object(List(x49)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x59)), x2[16], java.lang.Object(List(x49)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x59))), java.lang.Object(List(x49)), x2[16], x0[6], java.lang.Object(List(x59)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (130) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (132)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x49)))=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(x49)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(x49)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x49)), x2[16], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (131) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (133)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x49)))=List(x0[6])∧Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x59)))=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x59)), x2[16], java.lang.Object(List(x49)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x59)), x2[16], java.lang.Object(List(x49)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x59))), java.lang.Object(List(x49)), x2[16], x0[6], java.lang.Object(List(x59)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (128) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (134)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (132) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (135)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (133) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (136)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (129) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (137)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (135) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (138)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (134) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (139)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (136) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (140)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (137) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (141)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (138) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (142)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (139) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (143)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (140) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (144)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (141) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (145)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (142) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (146)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (143) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (147)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (144) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (148)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



  • We consider the chain COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]), 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]), 1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) which results in the following constraint:

    (149)    (346_0_length_ConstantStackPush(x0[5])=List(x0[6])∧x1[5]=x2[6]x2[5]=x3[6]x0[5]=x1[6]346_0_length_ConstantStackPush(x2[6])=List(x0[14])∧x1[6]=java.lang.Object(List(x1[14]))∧x3[6]=x3[14]x0[6]=x4[14]x2[6]=x2[14]1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (149) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (150)    (0=x63820_0_length_NULL(x63, x2[6])=List(x0[14])∧1=x64820_0_length_NULL(x64, x1[14])=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x1[14])))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x1[14])), x2[5], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (150) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x63, x2[6])=List(x0[14]) which results in the following new constraints:

    (151)    (List(x65)=List(x0[14])∧0=x651=x64820_0_length_NULL(x64, x1[14])=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x1[14])))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x1[14])), x2[5], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (152)    (Cond_820_0_length_NULL(>(x67, -1), x67, java.lang.Object(List(x66)))=List(x0[14])∧0=x671=x64820_0_length_NULL(x64, x1[14])=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x66)), x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x66)), x2[5], java.lang.Object(List(x1[14])))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x66))), java.lang.Object(List(x1[14])), x2[5], x0[6], java.lang.Object(List(x66)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (151) using rules (I), (II), (IV) which results in the following new constraint:

    (153)    (1=x64820_0_length_NULL(x64, x1[14])=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x1[14])))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x1[14])), x2[5], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (152) using rule (VII) which results in the following new constraint:

    (154)    (>(x67, -1)=x73java.lang.Object(List(x66))=x74Cond_820_0_length_NULL(x73, x67, x74)=List(x0[14])∧0=x671=x64820_0_length_NULL(x64, x1[14])=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x66)), x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x66)), x2[5], java.lang.Object(List(x1[14])))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x66))), java.lang.Object(List(x1[14])), x2[5], x0[6], java.lang.Object(List(x66)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (153) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x64, x1[14])=List(x0[6]) which results in the following new constraints:

    (155)    (List(x68)=List(x0[6])∧1=x681020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(NULL)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(NULL)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(NULL)), x2[5], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (156)    (Cond_820_0_length_NULL(>(x70, -1), x70, java.lang.Object(List(x69)))=List(x0[6])∧1=x701020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(java.lang.Object(List(x69)))))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(java.lang.Object(List(x69)))))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(java.lang.Object(List(x69)))), x2[5], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (155) using rules (I), (II), (III) which results in the following new constraint:

    (157)    (1020_1_MAIN_INVOKEMETHOD(List(1), NULL, x2[5], java.lang.Object(List(NULL)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(1), NULL, x2[5], java.lang.Object(List(NULL)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(NULL)), x2[5], 1, NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (156) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (158)    (Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x69)))=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(java.lang.Object(List(x69)))))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(java.lang.Object(List(x69)))))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(java.lang.Object(List(x69)))), x2[5], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (157) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (159)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (154) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x64, x1[14])=List(x0[6]) which results in the following new constraints:

    (160)    (List(x75)=List(x0[6])∧>(x67, -1)=x73java.lang.Object(List(x66))=x74Cond_820_0_length_NULL(x73, x67, x74)=List(x0[14])∧0=x671=x751020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x66)), x2[5], java.lang.Object(List(NULL)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x66)), x2[5], java.lang.Object(List(NULL)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x66))), java.lang.Object(List(NULL)), x2[5], x0[6], java.lang.Object(List(x66)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (161)    (Cond_820_0_length_NULL(>(x77, -1), x77, java.lang.Object(List(x76)))=List(x0[6])∧>(x67, -1)=x73java.lang.Object(List(x66))=x74Cond_820_0_length_NULL(x73, x67, x74)=List(x0[14])∧0=x671=x771020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x66)), x2[5], java.lang.Object(List(java.lang.Object(List(x76)))))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x66)), x2[5], java.lang.Object(List(java.lang.Object(List(x76)))))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x66))), java.lang.Object(List(java.lang.Object(List(x76)))), x2[5], x0[6], java.lang.Object(List(x66)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (160) using rules (I), (II), (III), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (162)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x66)))=List(x0[14]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(x66)), x2[5], java.lang.Object(List(NULL)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(x66)), x2[5], java.lang.Object(List(NULL)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x66))), java.lang.Object(List(NULL)), x2[5], 1, java.lang.Object(List(x66)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (161) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (163)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x66)))=List(x0[14])∧Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x76)))=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x66)), x2[5], java.lang.Object(List(java.lang.Object(List(x76)))))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x66)), x2[5], java.lang.Object(List(java.lang.Object(List(x76)))))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x66))), java.lang.Object(List(java.lang.Object(List(x76)))), x2[5], x0[6], java.lang.Object(List(x66)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (158) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (164)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (162) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (165)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (163) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (166)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (159) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (167)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (165) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (168)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (164) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (169)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (166) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (170)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (167) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (171)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (168) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (172)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (169) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (173)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (170) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (174)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (171) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (175)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (172) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (176)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (173) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (177)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (174) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (178)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



  • We consider the chain 923_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16]), 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]), 1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) which results in the following constraint:

    (179)    (346_0_length_ConstantStackPush(x0[16])=List(x0[6])∧x1[16]=x2[6]x2[16]=x3[6]x0[16]=x1[6]346_0_length_ConstantStackPush(x2[6])=List(x0[14])∧x1[6]=java.lang.Object(List(x1[14]))∧x3[6]=x3[14]x0[6]=x4[14]x2[6]=x2[14]1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (179) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (180)    (0=x80820_0_length_NULL(x80, x2[6])=List(x0[14])∧1=x81820_0_length_NULL(x81, x1[14])=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], java.lang.Object(List(x1[14])))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], java.lang.Object(List(x1[14])))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x1[14])), x2[16], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (180) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x80, x2[6])=List(x0[14]) which results in the following new constraints:

    (181)    (List(x82)=List(x0[14])∧0=x821=x81820_0_length_NULL(x81, x1[14])=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(x1[14])))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(x1[14])))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x1[14])), x2[16], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (182)    (Cond_820_0_length_NULL(>(x84, -1), x84, java.lang.Object(List(x83)))=List(x0[14])∧0=x841=x81820_0_length_NULL(x81, x1[14])=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x83)), x2[16], java.lang.Object(List(x1[14])))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x83)), x2[16], java.lang.Object(List(x1[14])))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x83))), java.lang.Object(List(x1[14])), x2[16], x0[6], java.lang.Object(List(x83)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (181) using rules (I), (II), (IV) which results in the following new constraint:

    (183)    (1=x81820_0_length_NULL(x81, x1[14])=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(x1[14])))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(x1[14])))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x1[14])), x2[16], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (182) using rule (VII) which results in the following new constraint:

    (184)    (>(x84, -1)=x90java.lang.Object(List(x83))=x91Cond_820_0_length_NULL(x90, x84, x91)=List(x0[14])∧0=x841=x81820_0_length_NULL(x81, x1[14])=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x83)), x2[16], java.lang.Object(List(x1[14])))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x83)), x2[16], java.lang.Object(List(x1[14])))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x83))), java.lang.Object(List(x1[14])), x2[16], x0[6], java.lang.Object(List(x83)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (183) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x81, x1[14])=List(x0[6]) which results in the following new constraints:

    (185)    (List(x85)=List(x0[6])∧1=x851020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(NULL)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(NULL)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(NULL)), x2[16], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (186)    (Cond_820_0_length_NULL(>(x87, -1), x87, java.lang.Object(List(x86)))=List(x0[6])∧1=x871020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(java.lang.Object(List(x86)))))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(java.lang.Object(List(x86)))))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(java.lang.Object(List(x86)))), x2[16], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (185) using rules (I), (II), (III) which results in the following new constraint:

    (187)    (1020_1_MAIN_INVOKEMETHOD(List(1), NULL, x2[16], java.lang.Object(List(NULL)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(1), NULL, x2[16], java.lang.Object(List(NULL)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(NULL)), x2[16], 1, NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (186) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (188)    (Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x86)))=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(java.lang.Object(List(x86)))))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(java.lang.Object(List(x86)))))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(java.lang.Object(List(x86)))), x2[16], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (187) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (189)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (184) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x81, x1[14])=List(x0[6]) which results in the following new constraints:

    (190)    (List(x92)=List(x0[6])∧>(x84, -1)=x90java.lang.Object(List(x83))=x91Cond_820_0_length_NULL(x90, x84, x91)=List(x0[14])∧0=x841=x921020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x83)), x2[16], java.lang.Object(List(NULL)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x83)), x2[16], java.lang.Object(List(NULL)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x83))), java.lang.Object(List(NULL)), x2[16], x0[6], java.lang.Object(List(x83)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (191)    (Cond_820_0_length_NULL(>(x94, -1), x94, java.lang.Object(List(x93)))=List(x0[6])∧>(x84, -1)=x90java.lang.Object(List(x83))=x91Cond_820_0_length_NULL(x90, x84, x91)=List(x0[14])∧0=x841=x941020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x83)), x2[16], java.lang.Object(List(java.lang.Object(List(x93)))))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x83)), x2[16], java.lang.Object(List(java.lang.Object(List(x93)))))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x83))), java.lang.Object(List(java.lang.Object(List(x93)))), x2[16], x0[6], java.lang.Object(List(x83)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (190) using rules (I), (II), (III), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (192)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x83)))=List(x0[14]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(x83)), x2[16], java.lang.Object(List(NULL)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(x83)), x2[16], java.lang.Object(List(NULL)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x83))), java.lang.Object(List(NULL)), x2[16], 1, java.lang.Object(List(x83)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (191) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (193)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x83)))=List(x0[14])∧Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x93)))=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x83)), x2[16], java.lang.Object(List(java.lang.Object(List(x93)))))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x83)), x2[16], java.lang.Object(List(java.lang.Object(List(x93)))))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x83))), java.lang.Object(List(java.lang.Object(List(x93)))), x2[16], x0[6], java.lang.Object(List(x83)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (188) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (194)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (192) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (195)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (193) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (196)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (189) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (197)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (195) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (198)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (194) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (199)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (196) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (200)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (197) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (201)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (198) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (202)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (199) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (203)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (200) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (204)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (201) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (205)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (202) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (206)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (203) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (207)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (204) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (208)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)







For Pair 1050_1_MAIN_INVOKEMETHOD(List(x0), x1, x3, x4, x2) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4, x0), List(x0), x1, x3, x4, x2) the following chains were created:
  • We consider the chain 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]), COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]) which results in the following constraint:

    (209)    (<=(x4[7], x0[7])=TRUEList(x0[7])=List(x0[8])∧x1[7]=x1[8]x3[7]=x3[8]x4[7]=x4[8]x2[7]=x2[8]1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥NonInfC∧1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])∧(UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥))



    We simplified constraint (209) using rules (I), (II), (IV) which results in the following new constraint:

    (210)    (<=(x4[7], x0[7])=TRUE1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥NonInfC∧1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])∧(UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥))



    We simplified constraint (210) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (211)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[(-1)bni_121 + (-1)Bound*bni_121] ≥ 0∧[(-1)bso_122] ≥ 0)



    We simplified constraint (211) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (212)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[(-1)bni_121 + (-1)Bound*bni_121] ≥ 0∧[(-1)bso_122] ≥ 0)



    We simplified constraint (212) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (213)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[(-1)bni_121 + (-1)Bound*bni_121] ≥ 0∧[(-1)bso_122] ≥ 0)



    We simplified constraint (213) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (214)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_121 + (-1)Bound*bni_121] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_122] ≥ 0)







For Pair COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0), x1, x3, x4, x2) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1), x2, x3, x1) the following chains were created:
  • We consider the chain 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]), COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]), 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]) which results in the following constraint:

    (215)    (<=(x4[7], x0[7])=TRUEList(x0[7])=List(x0[8])∧x1[7]=x1[8]x3[7]=x3[8]x4[7]=x4[8]x2[7]=x2[8]346_0_length_ConstantStackPush(x1[8])=List(x0[9])∧x2[8]=x2[9]x3[8]=x3[9]x1[8]=x1[9]COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (215) using rules (I), (II), (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (216)    (<=(x4[7], x0[7])=TRUE0=x97820_0_length_NULL(x97, x1[8])=List(x0[9]) ⇒ COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), x1[8], x3[7], x4[7], x2[7])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), x1[8], x3[7], x4[7], x2[7])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[7], x3[7], x1[8])∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (216) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x97, x1[8])=List(x0[9]) which results in the following new constraints:

    (217)    (List(x98)=List(x0[9])∧<=(x4[7], x0[7])=TRUE0=x98COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[7], x3[7], NULL)∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))


    (218)    (Cond_820_0_length_NULL(>(x100, -1), x100, java.lang.Object(List(x99)))=List(x0[9])∧<=(x4[7], x0[7])=TRUE0=x100COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x99)), x3[7], x4[7], x2[7])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x99)), x3[7], x4[7], x2[7])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x99))), x2[7], x3[7], java.lang.Object(List(x99)))∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (217) using rules (I), (II), (IV) which results in the following new constraint:

    (219)    (<=(x4[7], x0[7])=TRUECOND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[7], x3[7], NULL)∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (218) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (220)    (<=(x4[7], x0[7])=TRUECond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x99)))=List(x0[9]) ⇒ COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x99)), x3[7], x4[7], x2[7])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x99)), x3[7], x4[7], x2[7])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x99))), x2[7], x3[7], java.lang.Object(List(x99)))∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (219) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (221)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_123 + (-1)Bound*bni_123] ≥ 0∧[(-1)bso_124] ≥ 0)



    We simplified constraint (220) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (222)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_123 + (-1)Bound*bni_123] ≥ 0∧[(-1)bso_124] ≥ 0)



    We simplified constraint (221) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (223)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_123 + (-1)Bound*bni_123] ≥ 0∧[(-1)bso_124] ≥ 0)



    We simplified constraint (222) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (224)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_123 + (-1)Bound*bni_123] ≥ 0∧[(-1)bso_124] ≥ 0)



    We simplified constraint (223) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (225)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_123 + (-1)Bound*bni_123] ≥ 0∧[(-1)bso_124] ≥ 0)



    We simplified constraint (224) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (226)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_123 + (-1)Bound*bni_123] ≥ 0∧[(-1)bso_124] ≥ 0)



    We simplified constraint (225) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (227)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_123 + (-1)Bound*bni_123] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_124] ≥ 0)



    We simplified constraint (226) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (228)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_123 + (-1)Bound*bni_123] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_124] ≥ 0)







For Pair 1090_1_MAIN_INVOKEMETHOD(List(x0), x2, x3, x1) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2), x1, x3, x0, x2) the following chains were created:
  • We consider the chain COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]), 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]), 1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) which results in the following constraint:

    (229)    (346_0_length_ConstantStackPush(x1[8])=List(x0[9])∧x2[8]=x2[9]x3[8]=x3[9]x1[8]=x1[9]346_0_length_ConstantStackPush(x2[9])=List(x0[10])∧x1[9]=x1[10]x3[9]=java.lang.Object(List(x3[10]))∧x0[9]=x4[10]x2[9]=x2[10]1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (229) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (230)    (0=x103820_0_length_NULL(x103, x1[8])=List(x0[9])∧0=x104820_0_length_NULL(x104, x2[9])=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), x1[8])≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), x1[8])≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[8], java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (230) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x103, x1[8])=List(x0[9]) which results in the following new constraints:

    (231)    (List(x105)=List(x0[9])∧0=x1050=x104820_0_length_NULL(x104, x2[9])=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), NULL, java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (232)    (Cond_820_0_length_NULL(>(x107, -1), x107, java.lang.Object(List(x106)))=List(x0[9])∧0=x1070=x104820_0_length_NULL(x104, x2[9])=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x106)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x106)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), java.lang.Object(List(x106)), java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (231) using rules (I), (II), (III) which results in the following new constraint:

    (233)    (0=x104820_0_length_NULL(x104, x2[9])=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(0), x2[9], java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), x2[9], java.lang.Object(List(x3[10])), NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), NULL, java.lang.Object(List(x3[10])), 0, x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (232) using rule (VII) which results in the following new constraint:

    (234)    (>(x107, -1)=x113java.lang.Object(List(x106))=x114Cond_820_0_length_NULL(x113, x107, x114)=List(x0[9])∧0=x1070=x104820_0_length_NULL(x104, x2[9])=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x106)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x106)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), java.lang.Object(List(x106)), java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (233) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x104, x2[9])=List(x0[10]) which results in the following new constraints:

    (235)    (List(x108)=List(x0[10])∧0=x1081090_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), NULL, java.lang.Object(List(x3[10])), 0, NULL)∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (236)    (Cond_820_0_length_NULL(>(x110, -1), x110, java.lang.Object(List(x109)))=List(x0[10])∧0=x1101090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x109)), java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x109)), java.lang.Object(List(x3[10])), NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x109))), NULL, java.lang.Object(List(x3[10])), 0, java.lang.Object(List(x109)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (235) using rules (I), (II), (IV) which results in the following new constraint:

    (237)    (1090_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), NULL, java.lang.Object(List(x3[10])), 0, NULL)∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (236) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (238)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x109)))=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x109)), java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x109)), java.lang.Object(List(x3[10])), NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x109))), NULL, java.lang.Object(List(x3[10])), 0, java.lang.Object(List(x109)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (237) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (239)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_125] = 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (234) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x104, x2[9])=List(x0[10]) which results in the following new constraints:

    (240)    (List(x115)=List(x0[10])∧>(x107, -1)=x113java.lang.Object(List(x106))=x114Cond_820_0_length_NULL(x113, x107, x114)=List(x0[9])∧0=x1070=x1151090_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x106)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x106)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x106)), java.lang.Object(List(x3[10])), x0[9], NULL)∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (241)    (Cond_820_0_length_NULL(>(x117, -1), x117, java.lang.Object(List(x116)))=List(x0[10])∧>(x107, -1)=x113java.lang.Object(List(x106))=x114Cond_820_0_length_NULL(x113, x107, x114)=List(x0[9])∧0=x1070=x1171090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x116)), java.lang.Object(List(x3[10])), java.lang.Object(List(x106)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x116)), java.lang.Object(List(x3[10])), java.lang.Object(List(x106)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x116))), java.lang.Object(List(x106)), java.lang.Object(List(x3[10])), x0[9], java.lang.Object(List(x116)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (240) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (242)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x106)))=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x106)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x106)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x106)), java.lang.Object(List(x3[10])), x0[9], NULL)∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (241) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (243)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x106)))=List(x0[9])∧Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x116)))=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x116)), java.lang.Object(List(x3[10])), java.lang.Object(List(x106)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x116)), java.lang.Object(List(x3[10])), java.lang.Object(List(x106)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x116))), java.lang.Object(List(x106)), java.lang.Object(List(x3[10])), x0[9], java.lang.Object(List(x116)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (238) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (244)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (242) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (245)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (243) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (246)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (239) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (247)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_125] = 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (245) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (248)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (244) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (249)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (246) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (250)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (247) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (251)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_125] = 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (248) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (252)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (249) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (253)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (250) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (254)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (251) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (255)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_125] = 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (252) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (256)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (253) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (257)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (254) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (258)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



  • We consider the chain COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]), 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]), 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13]) which results in the following constraint:

    (259)    (346_0_length_ConstantStackPush(x1[8])=List(x0[9])∧x2[8]=x2[9]x3[8]=x3[9]x1[8]=x1[9]346_0_length_ConstantStackPush(x2[9])=List(x0[13])∧x1[9]=x1[13]x3[9]=x3[13]x0[9]=x0[13]x2[9]=java.lang.Object(List(x2[13])) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (259) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (260)    (0=x120820_0_length_NULL(x120, x1[8])=List(x0[9])∧1=x121820_0_length_NULL(x121, x2[13])=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], x1[8])≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], x1[8])≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), x1[8], x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (260) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x120, x1[8])=List(x0[9]) which results in the following new constraints:

    (261)    (List(x122)=List(x0[9])∧0=x1221=x121820_0_length_NULL(x121, x2[13])=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), NULL, x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (262)    (Cond_820_0_length_NULL(>(x124, -1), x124, java.lang.Object(List(x123)))=List(x0[9])∧0=x1241=x121820_0_length_NULL(x121, x2[13])=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x123)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x123)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), java.lang.Object(List(x123)), x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (261) using rules (I), (II), (III) which results in the following new constraint:

    (263)    (1=x121820_0_length_NULL(x121, x2[13])=List(0) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x2[13])), x3[8], NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x2[13])), x3[8], NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), NULL, x3[8], 0, java.lang.Object(List(x2[13])))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (262) using rule (VII) which results in the following new constraint:

    (264)    (>(x124, -1)=x130java.lang.Object(List(x123))=x131Cond_820_0_length_NULL(x130, x124, x131)=List(x0[9])∧0=x1241=x121820_0_length_NULL(x121, x2[13])=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x123)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x123)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), java.lang.Object(List(x123)), x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (263) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x121, x2[13])=List(0) which results in the following new constraints:

    (265)    (List(x125)=List(0)∧1=x1251090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(NULL)), x3[8], NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(NULL)), x3[8], NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(NULL))), NULL, x3[8], 0, java.lang.Object(List(NULL)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (266)    (Cond_820_0_length_NULL(>(x127, -1), x127, java.lang.Object(List(x126)))=List(0)∧1=x1271090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x126)))), x3[8], NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x126)))), x3[8], NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x126))))), NULL, x3[8], 0, java.lang.Object(List(java.lang.Object(List(x126)))))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We solved constraint (265) using rules (I), (II), (III).We simplified constraint (266) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (267)    (Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x126)))=List(0) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x126)))), x3[8], NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x126)))), x3[8], NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x126))))), NULL, x3[8], 0, java.lang.Object(List(java.lang.Object(List(x126)))))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (264) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x121, x2[13])=List(x0[9]) which results in the following new constraints:

    (268)    (List(x132)=List(x0[9])∧>(x124, -1)=x130java.lang.Object(List(x123))=x131Cond_820_0_length_NULL(x130, x124, x131)=List(x0[9])∧0=x1241=x1321090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x123)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x123)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x123)), x3[8], x0[9], java.lang.Object(List(NULL)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (269)    (Cond_820_0_length_NULL(>(x134, -1), x134, java.lang.Object(List(x133)))=List(x0[9])∧>(x124, -1)=x130java.lang.Object(List(x123))=x131Cond_820_0_length_NULL(x130, x124, x131)=List(x0[9])∧0=x1241=x1341090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x133)))), x3[8], java.lang.Object(List(x123)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x133)))), x3[8], java.lang.Object(List(x123)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x133))))), java.lang.Object(List(x123)), x3[8], x0[9], java.lang.Object(List(java.lang.Object(List(x133)))))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (268) using rules (I), (II), (III), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (270)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x123)))=List(1) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x123)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x123)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x123)), x3[8], 1, java.lang.Object(List(NULL)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (269) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (271)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x123)))=List(x0[9])∧Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x133)))=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x133)))), x3[8], java.lang.Object(List(x123)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x133)))), x3[8], java.lang.Object(List(x123)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x133))))), java.lang.Object(List(x123)), x3[8], x0[9], java.lang.Object(List(java.lang.Object(List(x133)))))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (267) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (272)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (270) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (273)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (271) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (274)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (273) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (275)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (272) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (276)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (274) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (277)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (275) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (278)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (276) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (279)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (277) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (280)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (278) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (281)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (279) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (282)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (280) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (283)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)







For Pair 1113_1_MAIN_INVOKEMETHOD(List(x0), x1, java.lang.Object(List(x3)), x4, x2) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4, x0)), List(x0), x1, java.lang.Object(List(x3)), x4, x2) the following chains were created:
  • We consider the chain 1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]), COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11]) which results in the following constraint:

    (284)    (!(=(x4[10], x0[10]))=TRUEList(x0[10])=List(x0[11])∧x1[10]=x1[11]java.lang.Object(List(x3[10]))=java.lang.Object(List(x3[11]))∧x4[10]=x4[11]x2[10]=x2[11]1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])∧(UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥))



    We simplified constraint (284) using rules (I), (II), (IV) which results in the following new constraint:

    (285)    (!(=(x4[10], x0[10]))=TRUE1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])∧(UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥))



    We simplified constraint (285) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (286)    (0 ≥ 0 ⇒ (UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[(-1)bni_127 + (-1)Bound*bni_127] ≥ 0∧[(-1)bso_128] ≥ 0)



    We simplified constraint (286) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (287)    (0 ≥ 0 ⇒ (UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[(-1)bni_127 + (-1)Bound*bni_127] ≥ 0∧[(-1)bso_128] ≥ 0)



    We simplified constraint (287) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (288)    (0 ≥ 0 ⇒ (UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[(-1)bni_127 + (-1)Bound*bni_127] ≥ 0∧[(-1)bso_128] ≥ 0)



    We simplified constraint (288) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (289)    (0 ≥ 0 ⇒ (UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_127 + (-1)Bound*bni_127] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_128] ≥ 0)







For Pair COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0), x1, java.lang.Object(List(x3)), x4, x2) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1), x1, x2, x3) the following chains were created:
  • We consider the chain 1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]), COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11]), 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) which results in the following constraint:

    (290)    (!(=(x4[10], x0[10]))=TRUEList(x0[10])=List(x0[11])∧x1[10]=x1[11]java.lang.Object(List(x3[10]))=java.lang.Object(List(x3[11]))∧x4[10]=x4[11]x2[10]=x2[11]1275_0_test_Load(x1[11])=1522_0_test_Returnx1[11]=x0[12]x2[11]=x1[12]x3[11]=x2[12]COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11])≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



    We simplified constraint (290) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (291)    (!(=(x4[10], x0[10]))=TRUE1518_0_test_NULL(x1[11])=1522_0_test_ReturnCOND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x1[11], java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x1[11], java.lang.Object(List(x3[10])), x4[10], x2[10])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[10], x3[10])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



    We simplified constraint (291) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[11])=1522_0_test_Return which results in the following new constraints:

    (292)    (1522_0_test_Return=1522_0_test_Return!(=(x4[10], x0[10]))=TRUECOND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, x2[10], x3[10])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))


    (293)    (1518_0_test_NULL(x137)=1522_0_test_Return!(=(x4[10], x0[10]))=TRUE∧(∀x138,x139,x140,x141:1518_0_test_NULL(x137)=1522_0_test_Return!(=(x138, x139))=TRUECOND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x139), x137, java.lang.Object(List(x140)), x138, x141)≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x139), x137, java.lang.Object(List(x140)), x138, x141)≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x137), x137, x141, x140)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)) ⇒ COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x137)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x137)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(java.lang.Object(List(x137))), java.lang.Object(List(x137)), x2[10], x3[10])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



    We simplified constraint (292) using rules (I), (II) which results in the following new constraint:

    (294)    (!(=(x4[10], x0[10]))=TRUECOND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, x2[10], x3[10])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



    We simplified constraint (293) using rule (VI) where we applied the induction hypothesis (∀x138,x139,x140,x141:1518_0_test_NULL(x137)=1522_0_test_Return!(=(x138, x139))=TRUECOND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x139), x137, java.lang.Object(List(x140)), x138, x141)≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x139), x137, java.lang.Object(List(x140)), x138, x141)≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x137), x137, x141, x140)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)) with σ = [x138 / x4[10], x139 / x0[10]] which results in the following new constraint:

    (295)    (COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x137, java.lang.Object(List(x140)), x4[10], x141)≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x137, java.lang.Object(List(x140)), x4[10], x141)≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x137), x137, x141, x140)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥) ⇒ COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x137)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x137)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(java.lang.Object(List(x137))), java.lang.Object(List(x137)), x2[10], x3[10])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



    We simplified constraint (294) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (296)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_129 + (-1)Bound*bni_129] ≥ 0∧[(-1)bso_130] ≥ 0)



    We simplified constraint (295) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (297)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[-2] ≥ 0∧[-3] + x137 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_129 + (-1)Bound*bni_129] ≥ 0∧[-2 + (-1)bso_130] ≥ 0)



    We simplified constraint (296) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (298)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_129 + (-1)Bound*bni_129] ≥ 0∧[(-1)bso_130] ≥ 0)



    We simplified constraint (297) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (299)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[-2] ≥ 0∧[-3] + x137 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_129 + (-1)Bound*bni_129] ≥ 0∧[-2 + (-1)bso_130] ≥ 0)



    We simplified constraint (298) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (300)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_129 + (-1)Bound*bni_129] ≥ 0∧[(-1)bso_130] ≥ 0)



    We simplified constraint (299) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (301)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[-2] ≥ 0∧[-3] + x137 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_129 + (-1)Bound*bni_129] ≥ 0∧[-2 + (-1)bso_130] ≥ 0)



    We simplified constraint (300) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (302)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_129 + (-1)Bound*bni_129] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_130] ≥ 0)



    We simplified constraint (301) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (303)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[-2] ≥ 0∧[-3] + x137 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_129 + (-1)Bound*bni_129] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[-2 + (-1)bso_130] ≥ 0)



    We solved constraint (303) using rule (IDP_SMT_SPLIT).




For Pair 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0, x1, x2) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0), x1, x2, x0) the following chains were created:
  • We consider the chain COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11]), 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]), 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) which results in the following constraint:

    (304)    (1275_0_test_Load(x1[11])=1522_0_test_Returnx1[11]=x0[12]x2[11]=x1[12]x3[11]=x2[12]346_0_length_ConstantStackPush(x0[12])=List(x0[0])∧x1[12]=x2[0]x2[12]=x3[0]x0[12]=x1[0]1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (304) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (305)    (1518_0_test_NULL(x1[11])=1522_0_test_Return0=x145820_0_length_NULL(x145, x1[11])=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x1[11], x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x1[11], x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (305) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[11])=1522_0_test_Return which results in the following new constraints:

    (306)    (1522_0_test_Return=1522_0_test_Return0=x145820_0_length_NULL(x145, NULL)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[11], x3[11], NULL)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))


    (307)    (1518_0_test_NULL(x146)=1522_0_test_Return0=x145820_0_length_NULL(x145, java.lang.Object(List(x146)))=List(x0[0])∧(∀x147,x148,x149,x150:1518_0_test_NULL(x146)=1522_0_test_Return0=x147820_0_length_NULL(x147, x146)=List(x148) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x146, x149, x150)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x146, x149, x150)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x146), x149, x150, x146)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x146)), x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x146)), x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x146))), x2[11], x3[11], java.lang.Object(List(x146)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (306) using rules (I), (II), (IV), (REWRITING) which results in the following new constraint:

    (308)    (1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[11], x3[11], NULL)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (307) using rules (VII), (REWRITING) which results in the following new constraint:

    (309)    (1518_0_test_NULL(x146)=1522_0_test_Return0=x145∧(∀x147,x148,x149,x150:1518_0_test_NULL(x146)=1522_0_test_Return0=x147820_0_length_NULL(x147, x146)=List(x148) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x146, x149, x150)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x146, x149, x150)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x146), x149, x150, x146)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x145, -1)=x154java.lang.Object(List(x146))=x155Cond_820_0_length_NULL(x154, x145, x155)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x146)), x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x146)), x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x146))), x2[11], x3[11], java.lang.Object(List(x146)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (308) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (310)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (309) using rule (V) (with possible (I) afterwards) using induction on Cond_820_0_length_NULL(x154, x145, x155)=List(x0[0]) which results in the following new constraint:

    (311)    (820_0_length_NULL(+(x157, 1), x156)=List(x0[0])∧1518_0_test_NULL(x146)=1522_0_test_Return0=x157∧(∀x147,x148,x149,x150:1518_0_test_NULL(x146)=1522_0_test_Return0=x147820_0_length_NULL(x147, x146)=List(x148) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x146, x149, x150)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x146, x149, x150)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x146), x149, x150, x146)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x157, -1)=TRUEjava.lang.Object(List(x146))=java.lang.Object(List(x156)) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x146)), x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x146)), x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x146))), x2[11], x3[11], java.lang.Object(List(x146)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (311) using rules (I), (II), (III), (VII), (IDP_CONSTANT_FOLD), (DELETE_TRIVIAL_REDUCESTO) which results in the following new constraint:

    (312)    (1518_0_test_NULL(x156)=1522_0_test_Return∧(∀x147,x148,x149,x150:1518_0_test_NULL(x156)=1522_0_test_Return0=x147820_0_length_NULL(x147, x156)=List(x148) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x156, x149, x150)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x156, x149, x150)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x156), x149, x150, x156)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧820_0_length_NULL(1, x156)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x156)), x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x156)), x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x156))), x2[11], x3[11], java.lang.Object(List(x156)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (312) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (313)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (310) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (314)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (313) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (315)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (314) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (316)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (315) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (317)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (316) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (318)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (317) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (319)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



  • We consider the chain 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13]), 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]), 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) which results in the following constraint:

    (320)    (1275_0_test_Load(x1[13])=1522_0_test_Returnx1[13]=x0[12]x2[13]=x1[12]x3[13]=x2[12]346_0_length_ConstantStackPush(x0[12])=List(x0[0])∧x1[12]=x2[0]x2[12]=x3[0]x0[12]=x1[0]1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (320) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (321)    (1518_0_test_NULL(x1[13])=1522_0_test_Return0=x159820_0_length_NULL(x159, x1[13])=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x1[13], x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x1[13], x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (321) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[13])=1522_0_test_Return which results in the following new constraints:

    (322)    (1522_0_test_Return=1522_0_test_Return0=x159820_0_length_NULL(x159, NULL)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[13], x3[13], NULL)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))


    (323)    (1518_0_test_NULL(x160)=1522_0_test_Return0=x159820_0_length_NULL(x159, java.lang.Object(List(x160)))=List(x0[0])∧(∀x161,x162,x163,x164:1518_0_test_NULL(x160)=1522_0_test_Return0=x161820_0_length_NULL(x161, x160)=List(x162) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x160, x163, x164)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x160, x163, x164)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x160), x163, x164, x160)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x160)), x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x160)), x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x160))), x2[13], x3[13], java.lang.Object(List(x160)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (322) using rules (I), (II), (IV), (REWRITING) which results in the following new constraint:

    (324)    (1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[13], x3[13], NULL)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (323) using rules (VII), (REWRITING) which results in the following new constraint:

    (325)    (1518_0_test_NULL(x160)=1522_0_test_Return0=x159∧(∀x161,x162,x163,x164:1518_0_test_NULL(x160)=1522_0_test_Return0=x161820_0_length_NULL(x161, x160)=List(x162) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x160, x163, x164)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x160, x163, x164)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x160), x163, x164, x160)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x159, -1)=x168java.lang.Object(List(x160))=x169Cond_820_0_length_NULL(x168, x159, x169)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x160)), x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x160)), x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x160))), x2[13], x3[13], java.lang.Object(List(x160)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (324) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (326)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (325) using rule (V) (with possible (I) afterwards) using induction on Cond_820_0_length_NULL(x168, x159, x169)=List(x0[0]) which results in the following new constraint:

    (327)    (820_0_length_NULL(+(x171, 1), x170)=List(x0[0])∧1518_0_test_NULL(x160)=1522_0_test_Return0=x171∧(∀x161,x162,x163,x164:1518_0_test_NULL(x160)=1522_0_test_Return0=x161820_0_length_NULL(x161, x160)=List(x162) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x160, x163, x164)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x160, x163, x164)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x160), x163, x164, x160)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x171, -1)=TRUEjava.lang.Object(List(x160))=java.lang.Object(List(x170)) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x160)), x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x160)), x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x160))), x2[13], x3[13], java.lang.Object(List(x160)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (327) using rules (I), (II), (III), (VII), (IDP_CONSTANT_FOLD), (DELETE_TRIVIAL_REDUCESTO) which results in the following new constraint:

    (328)    (1518_0_test_NULL(x170)=1522_0_test_Return∧(∀x161,x162,x163,x164:1518_0_test_NULL(x170)=1522_0_test_Return0=x161820_0_length_NULL(x161, x170)=List(x162) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x170, x163, x164)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x170, x163, x164)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x170), x163, x164, x170)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧820_0_length_NULL(1, x170)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x170)), x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x170)), x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x170))), x2[13], x3[13], java.lang.Object(List(x170)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (328) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (329)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (326) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (330)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (329) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (331)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (330) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (332)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (331) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (333)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (332) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (334)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (333) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (335)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



  • We consider the chain COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15]), 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]), 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) which results in the following constraint:

    (336)    (1275_0_test_Load(x1[15])=1522_0_test_Returnx1[15]=x0[12]x2[15]=x1[12]x3[15]=x2[12]346_0_length_ConstantStackPush(x0[12])=List(x0[0])∧x1[12]=x2[0]x2[12]=x3[0]x0[12]=x1[0]1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (336) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (337)    (1518_0_test_NULL(x1[15])=1522_0_test_Return0=x173820_0_length_NULL(x173, x1[15])=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x1[15], x2[15], x3[15])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x1[15], x2[15], x3[15])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[15]), x2[15], x3[15], x1[15])∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (337) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[15])=1522_0_test_Return which results in the following new constraints:

    (338)    (1522_0_test_Return=1522_0_test_Return0=x173820_0_length_NULL(x173, NULL)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[15], x3[15])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[15], x3[15])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[15], x3[15], NULL)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))


    (339)    (1518_0_test_NULL(x174)=1522_0_test_Return0=x173820_0_length_NULL(x173, java.lang.Object(List(x174)))=List(x0[0])∧(∀x175,x176,x177,x178:1518_0_test_NULL(x174)=1522_0_test_Return0=x175820_0_length_NULL(x175, x174)=List(x176) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x174, x177, x178)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x174, x177, x178)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x174), x177, x178, x174)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x174)), x2[15], x3[15])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x174)), x2[15], x3[15])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x174))), x2[15], x3[15], java.lang.Object(List(x174)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (338) using rules (I), (II), (IV), (REWRITING) which results in the following new constraint:

    (340)    (1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[15], x3[15])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[15], x3[15])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[15], x3[15], NULL)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (339) using rules (VII), (REWRITING) which results in the following new constraint:

    (341)    (1518_0_test_NULL(x174)=1522_0_test_Return0=x173∧(∀x175,x176,x177,x178:1518_0_test_NULL(x174)=1522_0_test_Return0=x175820_0_length_NULL(x175, x174)=List(x176) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x174, x177, x178)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x174, x177, x178)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x174), x177, x178, x174)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x173, -1)=x182java.lang.Object(List(x174))=x183Cond_820_0_length_NULL(x182, x173, x183)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x174)), x2[15], x3[15])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x174)), x2[15], x3[15])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x174))), x2[15], x3[15], java.lang.Object(List(x174)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (340) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (342)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (341) using rule (V) (with possible (I) afterwards) using induction on Cond_820_0_length_NULL(x182, x173, x183)=List(x0[0]) which results in the following new constraint:

    (343)    (820_0_length_NULL(+(x185, 1), x184)=List(x0[0])∧1518_0_test_NULL(x174)=1522_0_test_Return0=x185∧(∀x175,x176,x177,x178:1518_0_test_NULL(x174)=1522_0_test_Return0=x175820_0_length_NULL(x175, x174)=List(x176) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x174, x177, x178)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x174, x177, x178)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x174), x177, x178, x174)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x185, -1)=TRUEjava.lang.Object(List(x174))=java.lang.Object(List(x184)) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x174)), x2[15], x3[15])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x174)), x2[15], x3[15])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x174))), x2[15], x3[15], java.lang.Object(List(x174)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (343) using rules (I), (II), (III), (VII), (IDP_CONSTANT_FOLD), (DELETE_TRIVIAL_REDUCESTO) which results in the following new constraint:

    (344)    (1518_0_test_NULL(x184)=1522_0_test_Return∧(∀x175,x176,x177,x178:1518_0_test_NULL(x184)=1522_0_test_Return0=x175820_0_length_NULL(x175, x184)=List(x176) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x184, x177, x178)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x184, x177, x178)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x184), x177, x178, x184)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧820_0_length_NULL(1, x184)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x184)), x2[15], x3[15])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x184)), x2[15], x3[15])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x184))), x2[15], x3[15], java.lang.Object(List(x184)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (344) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (345)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (342) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (346)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (345) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (347)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (346) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (348)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (347) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (349)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (348) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (350)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (349) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (351)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)







For Pair 1113_1_MAIN_INVOKEMETHOD(List(x0), x1, x3, x0, java.lang.Object(List(x2))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1), x1, x2, x3) the following chains were created:
  • We consider the chain 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]), 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13]), 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) which results in the following constraint:

    (352)    (346_0_length_ConstantStackPush(x2[9])=List(x0[13])∧x1[9]=x1[13]x3[9]=x3[13]x0[9]=x0[13]x2[9]=java.lang.Object(List(x2[13]))∧1275_0_test_Load(x1[13])=1522_0_test_Returnx1[13]=x0[12]x2[13]=x1[12]x3[13]=x2[12]1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (352) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (353)    (1518_0_test_NULL(x1[13])=1522_0_test_Return1=x187820_0_length_NULL(x187, x2[13])=List(x0[9]) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), x1[13], x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), x1[13], x3[9], x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (353) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[13])=1522_0_test_Return which results in the following new constraints:

    (354)    (1522_0_test_Return=1522_0_test_Return1=x187820_0_length_NULL(x187, x2[13])=List(x0[9]) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, x2[13], x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))


    (355)    (1518_0_test_NULL(x188)=1522_0_test_Return1=x187820_0_length_NULL(x187, x2[13])=List(x0[9])∧(∀x189,x190,x191,x192:1518_0_test_NULL(x188)=1522_0_test_Return1=x189820_0_length_NULL(x189, x190)=List(x191) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x191), x188, x192, x191, java.lang.Object(List(x190)))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x191), x188, x192, x191, java.lang.Object(List(x190)))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x188), x188, x190, x192)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x188)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x188)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(java.lang.Object(List(x188))), java.lang.Object(List(x188)), x2[13], x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (354) using rules (I), (II) which results in the following new constraint:

    (356)    (1=x187820_0_length_NULL(x187, x2[13])=List(x0[9]) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, x2[13], x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (355) using rule (VI) where we applied the induction hypothesis (∀x189,x190,x191,x192:1518_0_test_NULL(x188)=1522_0_test_Return1=x189820_0_length_NULL(x189, x190)=List(x191) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x191), x188, x192, x191, java.lang.Object(List(x190)))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x191), x188, x192, x191, java.lang.Object(List(x190)))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x188), x188, x190, x192)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)) with σ = [x189 / x187, x190 / x2[13], x191 / x0[9]] which results in the following new constraint:

    (357)    (1113_1_MAIN_INVOKEMETHOD(List(x0[9]), x188, x192, x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), x188, x192, x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x188), x188, x2[13], x192)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x188)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x188)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(java.lang.Object(List(x188))), java.lang.Object(List(x188)), x2[13], x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (356) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x187, x2[13])=List(x0[9]) which results in the following new constraints:

    (358)    (List(x195)=List(x0[9])∧1=x1951113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(NULL)))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(NULL)))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, NULL, x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))


    (359)    (Cond_820_0_length_NULL(>(x197, -1), x197, java.lang.Object(List(x196)))=List(x0[9])∧1=x1971113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x196)))))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x196)))))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, java.lang.Object(List(x196)), x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (358) using rules (I), (II), (III) which results in the following new constraint:

    (360)    (1113_1_MAIN_INVOKEMETHOD(List(1), NULL, x3[9], 1, java.lang.Object(List(NULL)))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(1), NULL, x3[9], 1, java.lang.Object(List(NULL)))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, NULL, x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (359) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (361)    (Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x196)))=List(x0[9]) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x196)))))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x196)))))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, java.lang.Object(List(x196)), x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (360) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (362)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_133] = 0∧[(-1)bso_134] ≥ 0)



    We simplified constraint (357) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (363)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] ≥ 0∧[-3] + x188 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[-2 + (-1)bso_134] ≥ 0)



    We simplified constraint (361) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (364)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[(-1)bso_134] ≥ 0)



    We simplified constraint (362) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (365)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_133] = 0∧[(-1)bso_134] ≥ 0)



    We simplified constraint (364) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (366)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[(-1)bso_134] ≥ 0)



    We simplified constraint (363) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (367)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] ≥ 0∧[-3] + x188 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[-2 + (-1)bso_134] ≥ 0)



    We simplified constraint (365) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (368)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_133] = 0∧[(-1)bso_134] ≥ 0)



    We simplified constraint (366) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (369)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[(-1)bso_134] ≥ 0)



    We simplified constraint (367) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (370)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] ≥ 0∧[-3] + x188 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[-2 + (-1)bso_134] ≥ 0)



    We simplified constraint (368) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (371)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_133] = 0∧0 ≥ 0∧[(-1)bso_134] ≥ 0)



    We simplified constraint (369) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (372)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_134] ≥ 0)



    We simplified constraint (370) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (373)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] ≥ 0∧[-3] + x188 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[-2 + (-1)bso_134] ≥ 0)



    We solved constraint (373) using rule (IDP_SMT_SPLIT).




For Pair 1050_1_MAIN_INVOKEMETHOD(List(x0), java.lang.Object(List(x1)), x3, x4, x2) → COND_1050_1_MAIN_INVOKEMETHOD1(>(x4, x0), List(x0), java.lang.Object(List(x1)), x3, x4, x2) the following chains were created:
  • We consider the chain 1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]), COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15]) which results in the following constraint:

    (374)    (>(x4[14], x0[14])=TRUEList(x0[14])=List(x0[15])∧java.lang.Object(List(x1[14]))=java.lang.Object(List(x1[15]))∧x3[14]=x3[15]x4[14]=x4[15]x2[14]=x2[15]1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])≥NonInfC∧1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])≥COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])∧(UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥))



    We simplified constraint (374) using rules (I), (II), (IV) which results in the following new constraint:

    (375)    (>(x4[14], x0[14])=TRUE1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])≥NonInfC∧1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])≥COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])∧(UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥))



    We simplified constraint (375) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (376)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧[(-1)bni_135 + (-1)Bound*bni_135] ≥ 0∧[(-1)bso_136] ≥ 0)



    We simplified constraint (376) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (377)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧[(-1)bni_135 + (-1)Bound*bni_135] ≥ 0∧[(-1)bso_136] ≥ 0)



    We simplified constraint (377) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (378)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧[(-1)bni_135 + (-1)Bound*bni_135] ≥ 0∧[(-1)bso_136] ≥ 0)



    We simplified constraint (378) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (379)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_135 + (-1)Bound*bni_135] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_136] ≥ 0)







For Pair COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0), java.lang.Object(List(x1)), x3, x4, x2) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1), x1, x2, x3) the following chains were created:
  • We consider the chain 1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]), COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15]), 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) which results in the following constraint:

    (380)    (>(x4[14], x0[14])=TRUEList(x0[14])=List(x0[15])∧java.lang.Object(List(x1[14]))=java.lang.Object(List(x1[15]))∧x3[14]=x3[15]x4[14]=x4[15]x2[14]=x2[15]1275_0_test_Load(x1[15])=1522_0_test_Returnx1[15]=x0[12]x2[15]=x1[12]x3[15]=x2[12]COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



    We simplified constraint (380) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (381)    (>(x4[14], x0[14])=TRUE1518_0_test_NULL(x1[15])=1522_0_test_ReturnCOND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(x1[15])), x3[14], x4[14], x2[14])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(x1[15])), x3[14], x4[14], x2[14])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[14], x3[14])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



    We simplified constraint (381) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[15])=1522_0_test_Return which results in the following new constraints:

    (382)    (1522_0_test_Return=1522_0_test_Return>(x4[14], x0[14])=TRUECOND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(NULL)), x3[14], x4[14], x2[14])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(NULL)), x3[14], x4[14], x2[14])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, x2[14], x3[14])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))


    (383)    (1518_0_test_NULL(x200)=1522_0_test_Return>(x4[14], x0[14])=TRUE∧(∀x201,x202,x203,x204:1518_0_test_NULL(x200)=1522_0_test_Return>(x201, x202)=TRUECOND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x202), java.lang.Object(List(x200)), x203, x201, x204)≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x202), java.lang.Object(List(x200)), x203, x201, x204)≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x200), x200, x204, x203)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)) ⇒ COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(java.lang.Object(List(x200)))), x3[14], x4[14], x2[14])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(java.lang.Object(List(x200)))), x3[14], x4[14], x2[14])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(java.lang.Object(List(x200))), java.lang.Object(List(x200)), x2[14], x3[14])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



    We simplified constraint (382) using rules (I), (II) which results in the following new constraint:

    (384)    (>(x4[14], x0[14])=TRUECOND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(NULL)), x3[14], x4[14], x2[14])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(NULL)), x3[14], x4[14], x2[14])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, x2[14], x3[14])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



    We simplified constraint (383) using rule (VI) where we applied the induction hypothesis (∀x201,x202,x203,x204:1518_0_test_NULL(x200)=1522_0_test_Return>(x201, x202)=TRUECOND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x202), java.lang.Object(List(x200)), x203, x201, x204)≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x202), java.lang.Object(List(x200)), x203, x201, x204)≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x200), x200, x204, x203)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)) with σ = [x201 / x4[14], x202 / x0[14]] which results in the following new constraint:

    (385)    (COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(x200)), x203, x4[14], x204)≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(x200)), x203, x4[14], x204)≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x200), x200, x204, x203)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥) ⇒ COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(java.lang.Object(List(x200)))), x3[14], x4[14], x2[14])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(java.lang.Object(List(x200)))), x3[14], x4[14], x2[14])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(java.lang.Object(List(x200))), java.lang.Object(List(x200)), x2[14], x3[14])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



    We simplified constraint (384) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (386)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧[(-1)bso_138] ≥ 0)



    We simplified constraint (385) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (387)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[-2] ≥ 0∧[-3] + x200 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧[-2 + (-1)bso_138] ≥ 0)



    We simplified constraint (386) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (388)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧[(-1)bso_138] ≥ 0)



    We simplified constraint (387) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (389)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[-2] ≥ 0∧[-3] + x200 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧[-2 + (-1)bso_138] ≥ 0)



    We simplified constraint (388) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (390)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧[(-1)bso_138] ≥ 0)



    We simplified constraint (389) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (391)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[-2] ≥ 0∧[-3] + x200 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧[-2 + (-1)bso_138] ≥ 0)



    We simplified constraint (390) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (392)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_138] ≥ 0)



    We simplified constraint (391) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (393)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[-2] ≥ 0∧[-3] + x200 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[-2 + (-1)bso_138] ≥ 0)



    We solved constraint (393) using rule (IDP_SMT_SPLIT).




For Pair 923_0_MAIN_NE(x0, x1, java.lang.Object(List(x2)), 0) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0), x1, x2, x0) the following chains were created:
  • We consider the chain 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]), 923_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16]), 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]) which results in the following constraint:

    (394)    (x1[3]=x0[16]x2[3]=x1[16]x3[3]=java.lang.Object(List(x2[16]))∧fresh2[3]=0346_0_length_ConstantStackPush(x0[16])=List(x0[6])∧x1[16]=x2[6]x2[16]=x3[6]x0[16]=x1[6]923_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0)≥NonInfC∧923_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0)≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))



    We simplified constraint (394) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (395)    (0=x208820_0_length_NULL(x208, x0[16])=List(x0[6]) ⇒ 923_0_MAIN_NE(x0[16], x2[3], java.lang.Object(List(x2[16])), 0)≥NonInfC∧923_0_MAIN_NE(x0[16], x2[3], java.lang.Object(List(x2[16])), 0)≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x2[3], x2[16], x0[16])∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))



    We simplified constraint (395) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x208, x0[16])=List(x0[6]) which results in the following new constraints:

    (396)    (List(x209)=List(x0[6])∧0=x209923_0_MAIN_NE(NULL, x2[3], java.lang.Object(List(x2[16])), 0)≥NonInfC∧923_0_MAIN_NE(NULL, x2[3], java.lang.Object(List(x2[16])), 0)≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[3], x2[16], NULL)∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))


    (397)    (Cond_820_0_length_NULL(>(x211, -1), x211, java.lang.Object(List(x210)))=List(x0[6])∧0=x211923_0_MAIN_NE(java.lang.Object(List(x210)), x2[3], java.lang.Object(List(x2[16])), 0)≥NonInfC∧923_0_MAIN_NE(java.lang.Object(List(x210)), x2[3], java.lang.Object(List(x2[16])), 0)≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x210))), x2[3], x2[16], java.lang.Object(List(x210)))∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))



    We simplified constraint (396) using rules (I), (II), (IV) which results in the following new constraint:

    (398)    (923_0_MAIN_NE(NULL, x2[3], java.lang.Object(List(x2[16])), 0)≥NonInfC∧923_0_MAIN_NE(NULL, x2[3], java.lang.Object(List(x2[16])), 0)≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[3], x2[16], NULL)∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))



    We simplified constraint (397) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (399)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x210)))=List(x0[6]) ⇒ 923_0_MAIN_NE(java.lang.Object(List(x210)), x2[3], java.lang.Object(List(x2[16])), 0)≥NonInfC∧923_0_MAIN_NE(java.lang.Object(List(x210)), x2[3], java.lang.Object(List(x2[16])), 0)≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x210))), x2[3], x2[16], java.lang.Object(List(x210)))∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))



    We simplified constraint (398) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (400)    ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧[bni_139] = 0∧[(-1)bso_140] ≥ 0)



    We simplified constraint (399) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (401)    ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧0 ≥ 0∧[(-1)bso_140] ≥ 0)



    We simplified constraint (400) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (402)    ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧[bni_139] = 0∧[(-1)bso_140] ≥ 0)



    We simplified constraint (401) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (403)    ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧0 ≥ 0∧[(-1)bso_140] ≥ 0)



    We simplified constraint (402) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (404)    ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧[bni_139] = 0∧[(-1)bso_140] ≥ 0)



    We simplified constraint (403) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (405)    ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧0 ≥ 0∧[(-1)bso_140] ≥ 0)



    We simplified constraint (404) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (406)    ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧[bni_139] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_140] ≥ 0)



    We simplified constraint (405) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (407)    ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_140] ≥ 0)



  • We consider the chain 937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18]))) → 923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18]), 923_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16]), 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]) which results in the following constraint:

    (408)    (x1[18]=x0[16]x2[18]=x1[16]java.lang.Object(List(x3[18]))=java.lang.Object(List(x2[16]))∧fresh2[18]=0346_0_length_ConstantStackPush(x0[16])=List(x0[6])∧x1[16]=x2[6]x2[16]=x3[6]x0[16]=x1[6]923_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0)≥NonInfC∧923_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0)≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))



    We simplified constraint (408) using rules (I), (II), (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (409)    (0=x214820_0_length_NULL(x214, x0[16])=List(x0[6]) ⇒ 923_0_MAIN_NE(x0[16], x2[18], java.lang.Object(List(x3[18])), 0)≥NonInfC∧923_0_MAIN_NE(x0[16], x2[18], java.lang.Object(List(x3[18])), 0)≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x2[18], x3[18], x0[16])∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))



    We simplified constraint (409) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x214, x0[16])=List(x0[6]) which results in the following new constraints:

    (410)    (List(x215)=List(x0[6])∧0=x215923_0_MAIN_NE(NULL, x2[18], java.lang.Object(List(x3[18])), 0)≥NonInfC∧923_0_MAIN_NE(NULL, x2[18], java.lang.Object(List(x3[18])), 0)≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[18], x3[18], NULL)∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))


    (411)    (Cond_820_0_length_NULL(>(x217, -1), x217, java.lang.Object(List(x216)))=List(x0[6])∧0=x217923_0_MAIN_NE(java.lang.Object(List(x216)), x2[18], java.lang.Object(List(x3[18])), 0)≥NonInfC∧923_0_MAIN_NE(java.lang.Object(List(x216)), x2[18], java.lang.Object(List(x3[18])), 0)≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x216))), x2[18], x3[18], java.lang.Object(List(x216)))∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))



    We simplified constraint (410) using rules (I), (II), (IV) which results in the following new constraint:

    (412)    (923_0_MAIN_NE(NULL, x2[18], java.lang.Object(List(x3[18])), 0)≥NonInfC∧923_0_MAIN_NE(NULL, x2[18], java.lang.Object(List(x3[18])), 0)≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[18], x3[18], NULL)∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))



    We simplified constraint (411) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (413)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x216)))=List(x0[6]) ⇒ 923_0_MAIN_NE(java.lang.Object(List(x216)), x2[18], java.lang.Object(List(x3[18])), 0)≥NonInfC∧923_0_MAIN_NE(java.lang.Object(List(x216)), x2[18], java.lang.Object(List(x3[18])), 0)≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x216))), x2[18], x3[18], java.lang.Object(List(x216)))∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))



    We simplified constraint (412) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (414)    ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧[bni_139] = 0∧[(-1)bso_140] ≥ 0)



    We simplified constraint (413) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (415)    ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧0 ≥ 0∧[(-1)bso_140] ≥ 0)



    We simplified constraint (414) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (416)    ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧[bni_139] = 0∧[(-1)bso_140] ≥ 0)



    We simplified constraint (415) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (417)    ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧0 ≥ 0∧[(-1)bso_140] ≥ 0)



    We simplified constraint (416) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (418)    ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧[bni_139] = 0∧[(-1)bso_140] ≥ 0)



    We simplified constraint (417) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (419)    ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧0 ≥ 0∧[(-1)bso_140] ≥ 0)



    We simplified constraint (418) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (420)    ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧[bni_139] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_140] ≥ 0)



    We simplified constraint (419) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (421)    ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_140] ≥ 0)







For Pair 845_1_MAIN_INVOKEMETHOD(List(x0), x1, java.lang.Object(List(x3)), x2) → 937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3))), x1, x2, java.lang.Object(List(x3))) the following chains were created:
  • We consider the chain COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]), 845_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17]) → 937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17]))), 937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18]))) → 923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18]) which results in the following constraint:

    (422)    (346_0_length_ConstantStackPush(x3[1])=List(x0[17])∧x2[1]=x1[17]x1[1]=java.lang.Object(List(x3[17]))∧x3[1]=x2[17]937_0_length_ConstantStackPush(java.lang.Object(List(x3[17])))=List(x0[18])∧x1[17]=x1[18]x2[17]=x2[18]java.lang.Object(List(x3[17]))=java.lang.Object(List(x3[18])) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17])≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17])≥937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))∧(UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



    We simplified constraint (422) using rules (I), (II), (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (423)    (0=x220820_0_length_NULL(x220, x3[1])=List(x0[17])∧1=x221820_0_length_NULL(x221, x3[17])=List(x0[18]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(x3[17])), x3[1])≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(x3[17])), x3[1])≥937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x2[1], x3[1], java.lang.Object(List(x3[17])))∧(UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



    We simplified constraint (423) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x220, x3[1])=List(x0[17]) which results in the following new constraints:

    (424)    (List(x222)=List(x0[17])∧0=x2221=x221820_0_length_NULL(x221, x3[17])=List(x0[18]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(x3[17])), NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(x3[17])), NULL)≥937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x2[1], NULL, java.lang.Object(List(x3[17])))∧(UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))


    (425)    (Cond_820_0_length_NULL(>(x224, -1), x224, java.lang.Object(List(x223)))=List(x0[17])∧0=x2241=x221820_0_length_NULL(x221, x3[17])=List(x0[18]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(x3[17])), java.lang.Object(List(x223)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(x3[17])), java.lang.Object(List(x223)))≥937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x2[1], java.lang.Object(List(x223)), java.lang.Object(List(x3[17])))∧(UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



    We simplified constraint (424) using rules (I), (II), (III) which results in the following new constraint:

    (426)    (1=x221820_0_length_NULL(x221, x3[17])=List(x0[18]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x3[17])), NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x3[17])), NULL)≥937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x2[1], NULL, java.lang.Object(List(x3[17])))∧(UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



    We simplified constraint (425) using rule (VII) which results in the following new constraint:

    (427)    (>(x224, -1)=x230java.lang.Object(List(x223))=x231Cond_820_0_length_NULL(x230, x224, x231)=List(x0[17])∧0=x2241=x221820_0_length_NULL(x221, x3[17])=List(x0[18]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(x3[17])), java.lang.Object(List(x223)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(x3[17])), java.lang.Object(List(x223)))≥937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x2[1], java.lang.Object(List(x223)), java.lang.Object(List(x3[17])))∧(UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



    We simplified constraint (426) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x221, x3[17])=List(x0[18]) which results in the following new constraints:

    (428)    (List(x225)=List(x0[18])∧1=x225845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(NULL)), NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(NULL)), NULL)≥937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x2[1], NULL, java.lang.Object(List(NULL)))∧(UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))


    (429)    (Cond_820_0_length_NULL(>(x227, -1), x227, java.lang.Object(List(x226)))=List(x0[18])∧1=x227845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(java.lang.Object(List(x226)))), NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(java.lang.Object(List(x226)))), NULL)≥937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x226))))), x2[1], NULL, java.lang.Object(List(java.lang.Object(List(x226)))))∧(UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



    We simplified constraint (428) using rules (I), (II), (IV) which results in the following new constraint:

    (430)    (845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(NULL)), NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(NULL)), NULL)≥937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x2[1], NULL, java.lang.Object(List(NULL)))∧(UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



    We simplified constraint (429) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (431)    (Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x226)))=List(x0[18]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(java.lang.Object(List(x226)))), NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(java.lang.Object(List(x226)))), NULL)≥937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x226))))), x2[1], NULL, java.lang.Object(List(java.lang.Object(List(x226)))))∧(UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



    We simplified constraint (430) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (432)    ((UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧[bni_141] = 0∧[2 + (-1)bso_142] ≥ 0)



    We simplified constraint (427) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x221, x3[17])=List(x0[18]) which results in the following new constraints:

    (433)    (List(x232)=List(x0[18])∧>(x224, -1)=x230java.lang.Object(List(x223))=x231Cond_820_0_length_NULL(x230, x224, x231)=List(x0[17])∧0=x2241=x232845_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(NULL)), java.lang.Object(List(x223)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(NULL)), java.lang.Object(List(x223)))≥937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x2[1], java.lang.Object(List(x223)), java.lang.Object(List(NULL)))∧(UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))


    (434)    (Cond_820_0_length_NULL(>(x234, -1), x234, java.lang.Object(List(x233)))=List(x0[18])∧>(x224, -1)=x230java.lang.Object(List(x223))=x231Cond_820_0_length_NULL(x230, x224, x231)=List(x0[17])∧0=x2241=x234845_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(java.lang.Object(List(x233)))), java.lang.Object(List(x223)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(java.lang.Object(List(x233)))), java.lang.Object(List(x223)))≥937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x233))))), x2[1], java.lang.Object(List(x223)), java.lang.Object(List(java.lang.Object(List(x233)))))∧(UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



    We simplified constraint (433) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (435)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x223)))=List(x0[17]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(NULL)), java.lang.Object(List(x223)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(NULL)), java.lang.Object(List(x223)))≥937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x2[1], java.lang.Object(List(x223)), java.lang.Object(List(NULL)))∧(UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



    We simplified constraint (434) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (436)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x223)))=List(x0[17])∧Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x233)))=List(x0[18]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(java.lang.Object(List(x233)))), java.lang.Object(List(x223)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(java.lang.Object(List(x233)))), java.lang.Object(List(x223)))≥937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x233))))), x2[1], java.lang.Object(List(x223)), java.lang.Object(List(java.lang.Object(List(x233)))))∧(UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



    We simplified constraint (431) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (437)    ((UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[2 + (-1)bso_142] ≥ 0)



    We simplified constraint (435) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (438)    ((UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[2 + (-1)bso_142] ≥ 0)



    We simplified constraint (436) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (439)    ((UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[2 + (-1)bso_142] ≥ 0)



    We simplified constraint (432) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (440)    ((UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧[bni_141] = 0∧[2 + (-1)bso_142] ≥ 0)



    We simplified constraint (438) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (441)    ((UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[2 + (-1)bso_142] ≥ 0)



    We simplified constraint (437) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (442)    ((UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[2 + (-1)bso_142] ≥ 0)



    We simplified constraint (439) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (443)    ((UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[2 + (-1)bso_142] ≥ 0)



    We simplified constraint (440) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (444)    ((UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧[bni_141] = 0∧[2 + (-1)bso_142] ≥ 0)



    We simplified constraint (441) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (445)    ((UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[2 + (-1)bso_142] ≥ 0)



    We simplified constraint (442) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (446)    ((UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[2 + (-1)bso_142] ≥ 0)



    We simplified constraint (443) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (447)    ((UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[2 + (-1)bso_142] ≥ 0)



    We simplified constraint (444) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (448)    ((UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧[bni_141] = 0∧0 ≥ 0∧[2 + (-1)bso_142] ≥ 0)



    We simplified constraint (445) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (449)    ((UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_142] ≥ 0)



    We simplified constraint (446) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (450)    ((UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_142] ≥ 0)



    We simplified constraint (447) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (451)    ((UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_142] ≥ 0)







For Pair 937_1_MAIN_INVOKEMETHOD(List(x0), x1, x2, java.lang.Object(List(x3))) → 923_0_MAIN_NE(x1, x2, java.lang.Object(List(x3)), fresh2) the following chains were created:
  • We consider the chain 845_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17]) → 937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17]))), 937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18]))) → 923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18]), 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]) which results in the following constraint:

    (452)    (937_0_length_ConstantStackPush(java.lang.Object(List(x3[17])))=List(x0[18])∧x1[17]=x1[18]x2[17]=x2[18]java.lang.Object(List(x3[17]))=java.lang.Object(List(x3[18]))∧x1[18]=x0[4]x2[18]=x1[4]java.lang.Object(List(x3[18]))=x2[4]fresh2[18]=x3[4]937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18])))≥NonInfC∧937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18])))≥923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])∧(UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))



    We simplified constraint (452) using rules (I), (II), (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (453)    (1=x237820_0_length_NULL(x237, x3[17])=List(x0[18]) ⇒ 937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(x3[17])))≥NonInfC∧937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(x3[17])))≥923_0_MAIN_NE(x1[17], x2[17], java.lang.Object(List(x3[17])), fresh2[18])∧(UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))



    We simplified constraint (453) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x237, x3[17])=List(x0[18]) which results in the following new constraints:

    (454)    (List(x238)=List(x0[18])∧1=x238937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(NULL)))≥NonInfC∧937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(NULL)))≥923_0_MAIN_NE(x1[17], x2[17], java.lang.Object(List(NULL)), fresh2[18])∧(UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))


    (455)    (Cond_820_0_length_NULL(>(x240, -1), x240, java.lang.Object(List(x239)))=List(x0[18])∧1=x240937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x239)))))≥NonInfC∧937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x239)))))≥923_0_MAIN_NE(x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x239)))), fresh2[18])∧(UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))



    We simplified constraint (454) using rules (I), (II), (III) which results in the following new constraint:

    (456)    (937_1_MAIN_INVOKEMETHOD(List(1), x1[17], x2[17], java.lang.Object(List(NULL)))≥NonInfC∧937_1_MAIN_INVOKEMETHOD(List(1), x1[17], x2[17], java.lang.Object(List(NULL)))≥923_0_MAIN_NE(x1[17], x2[17], java.lang.Object(List(NULL)), fresh2[18])∧(UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))



    We simplified constraint (455) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (457)    (Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x239)))=List(x0[18]) ⇒ 937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x239)))))≥NonInfC∧937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x239)))))≥923_0_MAIN_NE(x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x239)))), fresh2[18])∧(UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))



    We simplified constraint (456) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (458)    ((UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧[bni_143] = 0∧[(-1)bso_144] ≥ 0)



    We simplified constraint (457) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (459)    ((UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧0 ≥ 0∧[(-1)bso_144] ≥ 0)



    We simplified constraint (458) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (460)    ((UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧[bni_143] = 0∧[(-1)bso_144] ≥ 0)



    We simplified constraint (459) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (461)    ((UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧0 ≥ 0∧[(-1)bso_144] ≥ 0)



    We simplified constraint (460) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (462)    ((UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧[bni_143] = 0∧[(-1)bso_144] ≥ 0)



    We simplified constraint (461) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (463)    ((UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧0 ≥ 0∧[(-1)bso_144] ≥ 0)



    We simplified constraint (462) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (464)    ((UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧[bni_143] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_144] ≥ 0)



    We simplified constraint (463) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (465)    ((UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_144] ≥ 0)



  • We consider the chain 845_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17]) → 937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17]))), 937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18]))) → 923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18]), 923_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16]) which results in the following constraint:

    (466)    (937_0_length_ConstantStackPush(java.lang.Object(List(x3[17])))=List(x0[18])∧x1[17]=x1[18]x2[17]=x2[18]java.lang.Object(List(x3[17]))=java.lang.Object(List(x3[18]))∧x1[18]=x0[16]x2[18]=x1[16]java.lang.Object(List(x3[18]))=java.lang.Object(List(x2[16]))∧fresh2[18]=0937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18])))≥NonInfC∧937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18])))≥923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])∧(UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))



    We simplified constraint (466) using rules (I), (II), (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (467)    (1=x243820_0_length_NULL(x243, x3[17])=List(x0[18]) ⇒ 937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(x3[17])))≥NonInfC∧937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(x3[17])))≥923_0_MAIN_NE(x1[17], x2[17], java.lang.Object(List(x3[17])), 0)∧(UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))



    We simplified constraint (467) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x243, x3[17])=List(x0[18]) which results in the following new constraints:

    (468)    (List(x244)=List(x0[18])∧1=x244937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(NULL)))≥NonInfC∧937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(NULL)))≥923_0_MAIN_NE(x1[17], x2[17], java.lang.Object(List(NULL)), 0)∧(UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))


    (469)    (Cond_820_0_length_NULL(>(x246, -1), x246, java.lang.Object(List(x245)))=List(x0[18])∧1=x246937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x245)))))≥NonInfC∧937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x245)))))≥923_0_MAIN_NE(x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x245)))), 0)∧(UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))



    We simplified constraint (468) using rules (I), (II), (III) which results in the following new constraint:

    (470)    (937_1_MAIN_INVOKEMETHOD(List(1), x1[17], x2[17], java.lang.Object(List(NULL)))≥NonInfC∧937_1_MAIN_INVOKEMETHOD(List(1), x1[17], x2[17], java.lang.Object(List(NULL)))≥923_0_MAIN_NE(x1[17], x2[17], java.lang.Object(List(NULL)), 0)∧(UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))



    We simplified constraint (469) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (471)    (Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x245)))=List(x0[18]) ⇒ 937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x245)))))≥NonInfC∧937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x245)))))≥923_0_MAIN_NE(x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x245)))), 0)∧(UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))



    We simplified constraint (470) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (472)    ((UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧[bni_143] = 0∧[(-1)bso_144] ≥ 0)



    We simplified constraint (471) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (473)    ((UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧0 ≥ 0∧[(-1)bso_144] ≥ 0)



    We simplified constraint (472) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (474)    ((UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧[bni_143] = 0∧[(-1)bso_144] ≥ 0)



    We simplified constraint (473) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (475)    ((UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧0 ≥ 0∧[(-1)bso_144] ≥ 0)



    We simplified constraint (474) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (476)    ((UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧[bni_143] = 0∧[(-1)bso_144] ≥ 0)



    We simplified constraint (475) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (477)    ((UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧0 ≥ 0∧[(-1)bso_144] ≥ 0)



    We simplified constraint (476) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (478)    ((UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧[bni_143] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_144] ≥ 0)



    We simplified constraint (477) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (479)    ((UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_144] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 346_1_MAIN_INVOKEMETHOD(List(x0), x2, x3, x1) → COND_346_1_MAIN_INVOKEMETHOD(>(x0, 0), List(x0), x2, x3, x1)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[(-1)bni_107] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_107 + (-1)Bound*bni_107] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)

  • COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0), x2, x3, x1) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3), x2, x1, x3)
    • (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)bni_109] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_109 + (-1)Bound*bni_109] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_109 + (-1)Bound*bni_109] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)

  • 845_1_MAIN_INVOKEMETHOD(List(x0), x1, x3, x2) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3), x1, x2, x3)
    • ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_111] = 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)
    • ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)
    • ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_112] ≥ 0)
    • ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_112] ≥ 0)

  • 896_1_MAIN_INVOKEMETHOD(List(x0), x1, x2, x3) → 923_0_MAIN_NE(x1, x2, x3, fresh2)
    • ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_113] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_114] ≥ 0)
    • ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_114] ≥ 0)
    • ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_113] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_114] ≥ 0)
    • ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_114] ≥ 0)

  • 923_0_MAIN_NE(x0, x1, x2, x3) → COND_923_0_MAIN_NE(>(x3, 0), x0, x1, x2, x3)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_115 + (-1)Bound*bni_115] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_116] ≥ 0)

  • COND_923_0_MAIN_NE(TRUE, x0, x1, x2, x3) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0), x1, x2, x0)
    • (0 ≥ 0 ⇒ (UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_117 + (-1)Bound*bni_117] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_118] ≥ 0)

  • 1020_1_MAIN_INVOKEMETHOD(List(x0), x2, x3, x1) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2), x1, x3, x0, x2)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)

  • 1050_1_MAIN_INVOKEMETHOD(List(x0), x1, x3, x4, x2) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4, x0), List(x0), x1, x3, x4, x2)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_121 + (-1)Bound*bni_121] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_122] ≥ 0)

  • COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0), x1, x3, x4, x2) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1), x2, x3, x1)
    • (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_123 + (-1)Bound*bni_123] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_124] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_123 + (-1)Bound*bni_123] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_124] ≥ 0)

  • 1090_1_MAIN_INVOKEMETHOD(List(x0), x2, x3, x1) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2), x1, x3, x0, x2)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_125] = 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)

  • 1113_1_MAIN_INVOKEMETHOD(List(x0), x1, java.lang.Object(List(x3)), x4, x2) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4, x0)), List(x0), x1, java.lang.Object(List(x3)), x4, x2)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_127 + (-1)Bound*bni_127] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_128] ≥ 0)

  • COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0), x1, java.lang.Object(List(x3)), x4, x2) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1), x1, x2, x3)
    • (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_129 + (-1)Bound*bni_129] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_130] ≥ 0)

  • 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0, x1, x2) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0), x1, x2, x0)
    • ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)
    • ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)
    • ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)
    • ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)
    • ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)
    • ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)

  • 1113_1_MAIN_INVOKEMETHOD(List(x0), x1, x3, x0, java.lang.Object(List(x2))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1), x1, x2, x3)
    • ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_133] = 0∧0 ≥ 0∧[(-1)bso_134] ≥ 0)
    • ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_134] ≥ 0)

  • 1050_1_MAIN_INVOKEMETHOD(List(x0), java.lang.Object(List(x1)), x3, x4, x2) → COND_1050_1_MAIN_INVOKEMETHOD1(>(x4, x0), List(x0), java.lang.Object(List(x1)), x3, x4, x2)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_135 + (-1)Bound*bni_135] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_136] ≥ 0)

  • COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0), java.lang.Object(List(x1)), x3, x4, x2) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1), x1, x2, x3)
    • (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_138] ≥ 0)

  • 923_0_MAIN_NE(x0, x1, java.lang.Object(List(x2)), 0) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0), x1, x2, x0)
    • ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧[bni_139] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_140] ≥ 0)
    • ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_140] ≥ 0)
    • ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧[bni_139] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_140] ≥ 0)
    • ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_140] ≥ 0)

  • 845_1_MAIN_INVOKEMETHOD(List(x0), x1, java.lang.Object(List(x3)), x2) → 937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3))), x1, x2, java.lang.Object(List(x3)))
    • ((UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧[bni_141] = 0∧0 ≥ 0∧[2 + (-1)bso_142] ≥ 0)
    • ((UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_142] ≥ 0)
    • ((UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_142] ≥ 0)
    • ((UIncreasing(937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_142] ≥ 0)

  • 937_1_MAIN_INVOKEMETHOD(List(x0), x1, x2, java.lang.Object(List(x3))) → 923_0_MAIN_NE(x1, x2, java.lang.Object(List(x3)), fresh2)
    • ((UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧[bni_143] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_144] ≥ 0)
    • ((UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_144] ≥ 0)
    • ((UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧[bni_143] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_144] ≥ 0)
    • ((UIncreasing(923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_144] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers with natural coefficients for non-tuple symbols [NONINF][POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(346_0_length_ConstantStackPush(x1)) = 0   
POL(820_0_length_NULL(x1, x2)) = 0   
POL(0) = 0   
POL(937_0_length_ConstantStackPush(x1)) = 0   
POL(java.lang.Object(x1)) = 0   
POL(List(x1)) = 0   
POL(NULL) = [2]   
POL(Cond_820_0_length_NULL(x1, x2, x3)) = 0   
POL(>(x1, x2)) = 0   
POL(-1) = 0   
POL(+(x1, x2)) = 0   
POL(1) = 0   
POL(1275_0_test_Load(x1)) = 0   
POL(1518_0_test_NULL(x1)) = 0   
POL(1522_0_test_Return) = 0   
POL(346_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [1] + [-1]x4 + [-1]x1   
POL(COND_346_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [1] + [-1]x5 + [-1]x2   
POL(845_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [1] + [-1]x3 + [-1]x1   
POL(896_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + [-1]x1   
POL(923_0_MAIN_NE(x1, x2, x3, x4)) = [-1]   
POL(COND_923_0_MAIN_NE(x1, x2, x3, x4, x5)) = [-1]   
POL(1020_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + [-1]x1   
POL(1050_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + [-1]x1   
POL(COND_1050_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x2   
POL(<=(x1, x2)) = 0   
POL(1090_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + [-1]x1   
POL(1113_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + [-1]x1   
POL(COND_1113_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x4 + [-1]x2 + [2]x1   
POL(!(x1)) = 0   
POL(=(x1, x2)) = 0   
POL(1275_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [1] + [-1]x2 + [-1]x1   
POL(COND_1050_1_MAIN_INVOKEMETHOD1(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x3 + [-1]x2   
POL(937_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x1   

The following pairs are in P>:

845_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17]) → 937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))

The following pairs are in Pbound:

923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])
COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])
COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])

The following pairs are in P:

346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])
COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])
COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])
COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])
923_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])
937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18]))) → 923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])

At least the following rules have been oriented under context sensitive arithmetic replacement:

820_0_length_NULL(0, x0)1346_0_length_ConstantStackPush(x0)1
820_0_length_NULL(x0, NULL)1List(x0)1
820_0_length_NULL(x1, java.lang.Object(List(x0)))1Cond_820_0_length_NULL(>(x1, -1), x1, java.lang.Object(List(x0)))1
Cond_820_0_length_NULL(TRUE, x1, java.lang.Object(List(x0)))1820_0_length_NULL(+(x1, 1), x0)1
!(TRUE)1FALSE1
!(FALSE)1TRUE1
1275_0_test_Load(x0)11518_0_test_NULL(x0)1
1518_0_test_NULL(NULL)11522_0_test_Return1
1518_0_test_NULL(java.lang.Object(List(x0)))11518_0_test_NULL(x0)1
937_0_length_ConstantStackPush(java.lang.Object(List(x0)))1820_0_length_NULL(0, java.lang.Object(List(x0)))1

(34) Complex Obligation (AND)

(35) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
346_0_length_ConstantStackPush(x0) → 820_0_length_NULL(0, x0)
937_0_length_ConstantStackPush(java.lang.Object(List(x0))) → 820_0_length_NULL(0, java.lang.Object(List(x0)))
820_0_length_NULL(x0, NULL) → List(x0)
820_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_820_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_820_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 820_0_length_NULL(x1 + 1, x0)
1275_0_test_Load(x0) → 1518_0_test_NULL(x0)
1518_0_test_NULL(NULL) → 1522_0_test_Return
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)

The integer pair graph contains the following rules and edges:
(0): 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(x0[0] > 0, List(x0[0]), x2[0], x3[0], x1[0])
(1): COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
(2): 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
(3): 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
(4): 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(x3[4] > 0, x0[4], x1[4], x2[4], x3[4])
(5): COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
(6): 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
(7): 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(x4[7] <= x0[7], List(x0[7]), x1[7], x3[7], x4[7], x2[7])
(8): COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
(9): 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
(10): 1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(x4[10] = x0[10]), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
(11): COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
(12): 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
(13): 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
(14): 1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(x4[14] > x0[14], List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
(15): COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])
(16): 923_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])
(18): 937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18]))) → 923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])

(12) -> (0), if (346_0_length_ConstantStackPush(x0[12]) →* List(x0[0])∧x1[12]* x2[0]x2[12]* x3[0]x0[12]* x1[0])


(0) -> (1), if (x0[0] > 0List(x0[0]) →* List(x0[1])∧x2[0]* x2[1]x3[0]* x3[1]x1[0]* x1[1])


(1) -> (2), if (346_0_length_ConstantStackPush(x3[1]) →* List(x0[2])∧x2[1]* x1[2]x1[1]* x3[2]x3[1]* x2[2])


(2) -> (3), if (346_0_length_ConstantStackPush(x3[2]) →* List(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x3[2]* x3[3])


(3) -> (4), if (x1[3]* x0[4]x2[3]* x1[4]x3[3]* x2[4]fresh2[3]* x3[4])


(18) -> (4), if (x1[18]* x0[4]x2[18]* x1[4]java.lang.Object(List(x3[18])) →* x2[4]fresh2[18]* x3[4])


(4) -> (5), if (x3[4] > 0x0[4]* x0[5]x1[4]* x1[5]x2[4]* x2[5]x3[4]* x3[5])


(5) -> (6), if (346_0_length_ConstantStackPush(x0[5]) →* List(x0[6])∧x1[5]* x2[6]x2[5]* x3[6]x0[5]* x1[6])


(16) -> (6), if (346_0_length_ConstantStackPush(x0[16]) →* List(x0[6])∧x1[16]* x2[6]x2[16]* x3[6]x0[16]* x1[6])


(6) -> (7), if (346_0_length_ConstantStackPush(x2[6]) →* List(x0[7])∧x1[6]* x1[7]x3[6]* x3[7]x0[6]* x4[7]x2[6]* x2[7])


(7) -> (8), if (x4[7] <= x0[7]List(x0[7]) →* List(x0[8])∧x1[7]* x1[8]x3[7]* x3[8]x4[7]* x4[8]x2[7]* x2[8])


(8) -> (9), if (346_0_length_ConstantStackPush(x1[8]) →* List(x0[9])∧x2[8]* x2[9]x3[8]* x3[9]x1[8]* x1[9])


(9) -> (10), if (346_0_length_ConstantStackPush(x2[9]) →* List(x0[10])∧x1[9]* x1[10]x3[9]* java.lang.Object(List(x3[10]))∧x0[9]* x4[10]x2[9]* x2[10])


(10) -> (11), if (!(x4[10] = x0[10]) ∧List(x0[10]) →* List(x0[11])∧x1[10]* x1[11]java.lang.Object(List(x3[10])) →* java.lang.Object(List(x3[11]))∧x4[10]* x4[11]x2[10]* x2[11])


(11) -> (12), if (1275_0_test_Load(x1[11]) →* 1522_0_test_Returnx1[11]* x0[12]x2[11]* x1[12]x3[11]* x2[12])


(13) -> (12), if (1275_0_test_Load(x1[13]) →* 1522_0_test_Returnx1[13]* x0[12]x2[13]* x1[12]x3[13]* x2[12])


(15) -> (12), if (1275_0_test_Load(x1[15]) →* 1522_0_test_Returnx1[15]* x0[12]x2[15]* x1[12]x3[15]* x2[12])


(9) -> (13), if (346_0_length_ConstantStackPush(x2[9]) →* List(x0[13])∧x1[9]* x1[13]x3[9]* x3[13]x0[9]* x0[13]x2[9]* java.lang.Object(List(x2[13])))


(6) -> (14), if (346_0_length_ConstantStackPush(x2[6]) →* List(x0[14])∧x1[6]* java.lang.Object(List(x1[14]))∧x3[6]* x3[14]x0[6]* x4[14]x2[6]* x2[14])


(14) -> (15), if (x4[14] > x0[14]List(x0[14]) →* List(x0[15])∧java.lang.Object(List(x1[14])) →* java.lang.Object(List(x1[15]))∧x3[14]* x3[15]x4[14]* x4[15]x2[14]* x2[15])


(3) -> (16), if (x1[3]* x0[16]x2[3]* x1[16]x3[3]* java.lang.Object(List(x2[16]))∧fresh2[3]* 0)


(18) -> (16), if (x1[18]* x0[16]x2[18]* x1[16]java.lang.Object(List(x3[18])) →* java.lang.Object(List(x2[16]))∧fresh2[18]* 0)



The set Q consists of the following terms:
346_0_length_ConstantStackPush(x0)
937_0_length_ConstantStackPush(java.lang.Object(List(x0)))
820_0_length_NULL(x0, NULL)
820_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_820_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))
1275_0_test_Load(x0)
1518_0_test_NULL(NULL)
1518_0_test_NULL(java.lang.Object(List(x0)))

(36) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node.

(37) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
346_0_length_ConstantStackPush(x0) → 820_0_length_NULL(0, x0)
937_0_length_ConstantStackPush(java.lang.Object(List(x0))) → 820_0_length_NULL(0, java.lang.Object(List(x0)))
820_0_length_NULL(x0, NULL) → List(x0)
820_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_820_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_820_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 820_0_length_NULL(x1 + 1, x0)
1275_0_test_Load(x0) → 1518_0_test_NULL(x0)
1518_0_test_NULL(NULL) → 1522_0_test_Return
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)

The integer pair graph contains the following rules and edges:
(16): 923_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])
(15): COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])
(14): 1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(x4[14] > x0[14], List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
(13): 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
(12): 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
(11): COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
(10): 1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(x4[10] = x0[10]), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
(9): 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
(8): COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
(7): 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(x4[7] <= x0[7], List(x0[7]), x1[7], x3[7], x4[7], x2[7])
(6): 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
(5): COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
(4): 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(x3[4] > 0, x0[4], x1[4], x2[4], x3[4])
(3): 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
(2): 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
(1): COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
(0): 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(x0[0] > 0, List(x0[0]), x2[0], x3[0], x1[0])

(12) -> (0), if (346_0_length_ConstantStackPush(x0[12]) →* List(x0[0])∧x1[12]* x2[0]x2[12]* x3[0]x0[12]* x1[0])


(0) -> (1), if (x0[0] > 0List(x0[0]) →* List(x0[1])∧x2[0]* x2[1]x3[0]* x3[1]x1[0]* x1[1])


(1) -> (2), if (346_0_length_ConstantStackPush(x3[1]) →* List(x0[2])∧x2[1]* x1[2]x1[1]* x3[2]x3[1]* x2[2])


(2) -> (3), if (346_0_length_ConstantStackPush(x3[2]) →* List(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x3[2]* x3[3])


(3) -> (4), if (x1[3]* x0[4]x2[3]* x1[4]x3[3]* x2[4]fresh2[3]* x3[4])


(4) -> (5), if (x3[4] > 0x0[4]* x0[5]x1[4]* x1[5]x2[4]* x2[5]x3[4]* x3[5])


(5) -> (6), if (346_0_length_ConstantStackPush(x0[5]) →* List(x0[6])∧x1[5]* x2[6]x2[5]* x3[6]x0[5]* x1[6])


(16) -> (6), if (346_0_length_ConstantStackPush(x0[16]) →* List(x0[6])∧x1[16]* x2[6]x2[16]* x3[6]x0[16]* x1[6])


(6) -> (7), if (346_0_length_ConstantStackPush(x2[6]) →* List(x0[7])∧x1[6]* x1[7]x3[6]* x3[7]x0[6]* x4[7]x2[6]* x2[7])


(7) -> (8), if (x4[7] <= x0[7]List(x0[7]) →* List(x0[8])∧x1[7]* x1[8]x3[7]* x3[8]x4[7]* x4[8]x2[7]* x2[8])


(8) -> (9), if (346_0_length_ConstantStackPush(x1[8]) →* List(x0[9])∧x2[8]* x2[9]x3[8]* x3[9]x1[8]* x1[9])


(9) -> (10), if (346_0_length_ConstantStackPush(x2[9]) →* List(x0[10])∧x1[9]* x1[10]x3[9]* java.lang.Object(List(x3[10]))∧x0[9]* x4[10]x2[9]* x2[10])


(10) -> (11), if (!(x4[10] = x0[10]) ∧List(x0[10]) →* List(x0[11])∧x1[10]* x1[11]java.lang.Object(List(x3[10])) →* java.lang.Object(List(x3[11]))∧x4[10]* x4[11]x2[10]* x2[11])


(11) -> (12), if (1275_0_test_Load(x1[11]) →* 1522_0_test_Returnx1[11]* x0[12]x2[11]* x1[12]x3[11]* x2[12])


(13) -> (12), if (1275_0_test_Load(x1[13]) →* 1522_0_test_Returnx1[13]* x0[12]x2[13]* x1[12]x3[13]* x2[12])


(15) -> (12), if (1275_0_test_Load(x1[15]) →* 1522_0_test_Returnx1[15]* x0[12]x2[15]* x1[12]x3[15]* x2[12])


(9) -> (13), if (346_0_length_ConstantStackPush(x2[9]) →* List(x0[13])∧x1[9]* x1[13]x3[9]* x3[13]x0[9]* x0[13]x2[9]* java.lang.Object(List(x2[13])))


(6) -> (14), if (346_0_length_ConstantStackPush(x2[6]) →* List(x0[14])∧x1[6]* java.lang.Object(List(x1[14]))∧x3[6]* x3[14]x0[6]* x4[14]x2[6]* x2[14])


(14) -> (15), if (x4[14] > x0[14]List(x0[14]) →* List(x0[15])∧java.lang.Object(List(x1[14])) →* java.lang.Object(List(x1[15]))∧x3[14]* x3[15]x4[14]* x4[15]x2[14]* x2[15])


(3) -> (16), if (x1[3]* x0[16]x2[3]* x1[16]x3[3]* java.lang.Object(List(x2[16]))∧fresh2[3]* 0)



The set Q consists of the following terms:
346_0_length_ConstantStackPush(x0)
937_0_length_ConstantStackPush(java.lang.Object(List(x0)))
820_0_length_NULL(x0, NULL)
820_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_820_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))
1275_0_test_Load(x0)
1518_0_test_NULL(NULL)
1518_0_test_NULL(java.lang.Object(List(x0)))

(38) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(39) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
346_0_length_ConstantStackPush(x0) → 820_0_length_NULL(0, x0)
1275_0_test_Load(x0) → 1518_0_test_NULL(x0)
820_0_length_NULL(x0, NULL) → List(x0)
820_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_820_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_820_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 820_0_length_NULL(x1 + 1, x0)
1518_0_test_NULL(NULL) → 1522_0_test_Return
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)

The integer pair graph contains the following rules and edges:
(16): 923_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])
(15): COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])
(14): 1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(x4[14] > x0[14], List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
(13): 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
(12): 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
(11): COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
(10): 1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(x4[10] = x0[10]), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
(9): 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
(8): COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
(7): 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(x4[7] <= x0[7], List(x0[7]), x1[7], x3[7], x4[7], x2[7])
(6): 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
(5): COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
(4): 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(x3[4] > 0, x0[4], x1[4], x2[4], x3[4])
(3): 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
(2): 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
(1): COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
(0): 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(x0[0] > 0, List(x0[0]), x2[0], x3[0], x1[0])

(12) -> (0), if (346_0_length_ConstantStackPush(x0[12]) →* List(x0[0])∧x1[12]* x2[0]x2[12]* x3[0]x0[12]* x1[0])


(0) -> (1), if (x0[0] > 0List(x0[0]) →* List(x0[1])∧x2[0]* x2[1]x3[0]* x3[1]x1[0]* x1[1])


(1) -> (2), if (346_0_length_ConstantStackPush(x3[1]) →* List(x0[2])∧x2[1]* x1[2]x1[1]* x3[2]x3[1]* x2[2])


(2) -> (3), if (346_0_length_ConstantStackPush(x3[2]) →* List(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x3[2]* x3[3])


(3) -> (4), if (x1[3]* x0[4]x2[3]* x1[4]x3[3]* x2[4]fresh2[3]* x3[4])


(4) -> (5), if (x3[4] > 0x0[4]* x0[5]x1[4]* x1[5]x2[4]* x2[5]x3[4]* x3[5])


(5) -> (6), if (346_0_length_ConstantStackPush(x0[5]) →* List(x0[6])∧x1[5]* x2[6]x2[5]* x3[6]x0[5]* x1[6])


(16) -> (6), if (346_0_length_ConstantStackPush(x0[16]) →* List(x0[6])∧x1[16]* x2[6]x2[16]* x3[6]x0[16]* x1[6])


(6) -> (7), if (346_0_length_ConstantStackPush(x2[6]) →* List(x0[7])∧x1[6]* x1[7]x3[6]* x3[7]x0[6]* x4[7]x2[6]* x2[7])


(7) -> (8), if (x4[7] <= x0[7]List(x0[7]) →* List(x0[8])∧x1[7]* x1[8]x3[7]* x3[8]x4[7]* x4[8]x2[7]* x2[8])


(8) -> (9), if (346_0_length_ConstantStackPush(x1[8]) →* List(x0[9])∧x2[8]* x2[9]x3[8]* x3[9]x1[8]* x1[9])


(9) -> (10), if (346_0_length_ConstantStackPush(x2[9]) →* List(x0[10])∧x1[9]* x1[10]x3[9]* java.lang.Object(List(x3[10]))∧x0[9]* x4[10]x2[9]* x2[10])


(10) -> (11), if (!(x4[10] = x0[10]) ∧List(x0[10]) →* List(x0[11])∧x1[10]* x1[11]java.lang.Object(List(x3[10])) →* java.lang.Object(List(x3[11]))∧x4[10]* x4[11]x2[10]* x2[11])


(11) -> (12), if (1275_0_test_Load(x1[11]) →* 1522_0_test_Returnx1[11]* x0[12]x2[11]* x1[12]x3[11]* x2[12])


(13) -> (12), if (1275_0_test_Load(x1[13]) →* 1522_0_test_Returnx1[13]* x0[12]x2[13]* x1[12]x3[13]* x2[12])


(15) -> (12), if (1275_0_test_Load(x1[15]) →* 1522_0_test_Returnx1[15]* x0[12]x2[15]* x1[12]x3[15]* x2[12])


(9) -> (13), if (346_0_length_ConstantStackPush(x2[9]) →* List(x0[13])∧x1[9]* x1[13]x3[9]* x3[13]x0[9]* x0[13]x2[9]* java.lang.Object(List(x2[13])))


(6) -> (14), if (346_0_length_ConstantStackPush(x2[6]) →* List(x0[14])∧x1[6]* java.lang.Object(List(x1[14]))∧x3[6]* x3[14]x0[6]* x4[14]x2[6]* x2[14])


(14) -> (15), if (x4[14] > x0[14]List(x0[14]) →* List(x0[15])∧java.lang.Object(List(x1[14])) →* java.lang.Object(List(x1[15]))∧x3[14]* x3[15]x4[14]* x4[15]x2[14]* x2[15])


(3) -> (16), if (x1[3]* x0[16]x2[3]* x1[16]x3[3]* java.lang.Object(List(x2[16]))∧fresh2[3]* 0)



The set Q consists of the following terms:
346_0_length_ConstantStackPush(x0)
937_0_length_ConstantStackPush(java.lang.Object(List(x0)))
820_0_length_NULL(x0, NULL)
820_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_820_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))
1275_0_test_Load(x0)
1518_0_test_NULL(NULL)
1518_0_test_NULL(java.lang.Object(List(x0)))

(40) IDPNonInfProof (SOUND transformation)

Used the following options for this NonInfProof:
IDPGPoloSolver: Range: [(-1,2)] IsNat: true Interpretation Shape Heuristic: aprove.DPFramework.IDPProblem.Processors.nonInf.poly.IdpDefaultShapeHeuristic@651d26b3 Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 1 Max Right Steps: 1

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair 923_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16]) the following chains were created:
  • We consider the chain 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]), 923_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16]), 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]) which results in the following constraint:

    (1)    (x1[3]=x0[16]x2[3]=x1[16]x3[3]=java.lang.Object(List(x2[16]))∧fresh2[3]=0346_0_length_ConstantStackPush(x0[16])=List(x0[6])∧x1[16]=x2[6]x2[16]=x3[6]x0[16]=x1[6]923_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0)≥NonInfC∧923_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0)≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))



    We simplified constraint (1) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (2)    (0=x0820_0_length_NULL(x0, x0[16])=List(x0[6]) ⇒ 923_0_MAIN_NE(x0[16], x2[3], java.lang.Object(List(x2[16])), 0)≥NonInfC∧923_0_MAIN_NE(x0[16], x2[3], java.lang.Object(List(x2[16])), 0)≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x2[3], x2[16], x0[16])∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))



    We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x0, x0[16])=List(x0[6]) which results in the following new constraints:

    (3)    (List(x1)=List(x0[6])∧0=x1923_0_MAIN_NE(NULL, x2[3], java.lang.Object(List(x2[16])), 0)≥NonInfC∧923_0_MAIN_NE(NULL, x2[3], java.lang.Object(List(x2[16])), 0)≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[3], x2[16], NULL)∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))


    (4)    (Cond_820_0_length_NULL(>(x3, -1), x3, java.lang.Object(List(x2)))=List(x0[6])∧0=x3923_0_MAIN_NE(java.lang.Object(List(x2)), x2[3], java.lang.Object(List(x2[16])), 0)≥NonInfC∧923_0_MAIN_NE(java.lang.Object(List(x2)), x2[3], java.lang.Object(List(x2[16])), 0)≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2))), x2[3], x2[16], java.lang.Object(List(x2)))∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))



    We simplified constraint (3) using rules (I), (II), (IV) which results in the following new constraint:

    (5)    (923_0_MAIN_NE(NULL, x2[3], java.lang.Object(List(x2[16])), 0)≥NonInfC∧923_0_MAIN_NE(NULL, x2[3], java.lang.Object(List(x2[16])), 0)≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[3], x2[16], NULL)∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))



    We simplified constraint (4) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (6)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x2)))=List(x0[6]) ⇒ 923_0_MAIN_NE(java.lang.Object(List(x2)), x2[3], java.lang.Object(List(x2[16])), 0)≥NonInfC∧923_0_MAIN_NE(java.lang.Object(List(x2)), x2[3], java.lang.Object(List(x2[16])), 0)≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2))), x2[3], x2[16], java.lang.Object(List(x2)))∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))



    We simplified constraint (5) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (7)    ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧[bni_100] = 0∧[2 + (-1)bso_101] ≥ 0)



    We simplified constraint (6) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (8)    ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧0 ≥ 0∧[2 + (-1)bso_101] ≥ 0)



    We simplified constraint (7) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (9)    ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧[bni_100] = 0∧[2 + (-1)bso_101] ≥ 0)



    We simplified constraint (8) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (10)    ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧0 ≥ 0∧[2 + (-1)bso_101] ≥ 0)



    We simplified constraint (9) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (11)    ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧[bni_100] = 0∧[2 + (-1)bso_101] ≥ 0)



    We simplified constraint (10) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (12)    ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧0 ≥ 0∧[2 + (-1)bso_101] ≥ 0)



    We simplified constraint (11) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (13)    ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧[bni_100] = 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_101] ≥ 0)



    We simplified constraint (12) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (14)    ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_101] ≥ 0)







For Pair COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15]) the following chains were created:
  • We consider the chain 1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]), COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15]), 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) which results in the following constraint:

    (15)    (>(x4[14], x0[14])=TRUEList(x0[14])=List(x0[15])∧java.lang.Object(List(x1[14]))=java.lang.Object(List(x1[15]))∧x3[14]=x3[15]x4[14]=x4[15]x2[14]=x2[15]1275_0_test_Load(x1[15])=1522_0_test_Returnx1[15]=x0[12]x2[15]=x1[12]x3[15]=x2[12]COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



    We simplified constraint (15) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (16)    (>(x4[14], x0[14])=TRUE1518_0_test_NULL(x1[15])=1522_0_test_ReturnCOND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(x1[15])), x3[14], x4[14], x2[14])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(x1[15])), x3[14], x4[14], x2[14])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[14], x3[14])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



    We simplified constraint (16) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[15])=1522_0_test_Return which results in the following new constraints:

    (17)    (1522_0_test_Return=1522_0_test_Return>(x4[14], x0[14])=TRUECOND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(NULL)), x3[14], x4[14], x2[14])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(NULL)), x3[14], x4[14], x2[14])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, x2[14], x3[14])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))


    (18)    (1518_0_test_NULL(x6)=1522_0_test_Return>(x4[14], x0[14])=TRUE∧(∀x7,x8,x9,x10:1518_0_test_NULL(x6)=1522_0_test_Return>(x7, x8)=TRUECOND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x8), java.lang.Object(List(x6)), x9, x7, x10)≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x8), java.lang.Object(List(x6)), x9, x7, x10)≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x6), x6, x10, x9)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)) ⇒ COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(java.lang.Object(List(x6)))), x3[14], x4[14], x2[14])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(java.lang.Object(List(x6)))), x3[14], x4[14], x2[14])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(java.lang.Object(List(x6))), java.lang.Object(List(x6)), x2[14], x3[14])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



    We simplified constraint (17) using rules (I), (II) which results in the following new constraint:

    (19)    (>(x4[14], x0[14])=TRUECOND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(NULL)), x3[14], x4[14], x2[14])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(NULL)), x3[14], x4[14], x2[14])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, x2[14], x3[14])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



    We simplified constraint (18) using rule (VI) where we applied the induction hypothesis (∀x7,x8,x9,x10:1518_0_test_NULL(x6)=1522_0_test_Return>(x7, x8)=TRUECOND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x8), java.lang.Object(List(x6)), x9, x7, x10)≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x8), java.lang.Object(List(x6)), x9, x7, x10)≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x6), x6, x10, x9)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)) with σ = [x7 / x4[14], x8 / x0[14]] which results in the following new constraint:

    (20)    (COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(x6)), x9, x4[14], x10)≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(x6)), x9, x4[14], x10)≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x6), x6, x10, x9)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥) ⇒ COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(java.lang.Object(List(x6)))), x3[14], x4[14], x2[14])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(java.lang.Object(List(x6)))), x3[14], x4[14], x2[14])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(java.lang.Object(List(x6))), java.lang.Object(List(x6)), x2[14], x3[14])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



    We simplified constraint (19) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (21)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_102 + (-1)Bound*bni_102] ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (20) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (22)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[-2] ≥ 0∧[-1] + [-1]x6 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_102 + (-1)Bound*bni_102] ≥ 0∧[-2 + (-1)bso_103] ≥ 0)



    We simplified constraint (21) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (23)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_102 + (-1)Bound*bni_102] ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (22) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (24)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[-2] ≥ 0∧[-1] + [-1]x6 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_102 + (-1)Bound*bni_102] ≥ 0∧[-2 + (-1)bso_103] ≥ 0)



    We simplified constraint (23) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (25)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_102 + (-1)Bound*bni_102] ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (24) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (26)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[-2] ≥ 0∧[-1] + [-1]x6 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_102 + (-1)Bound*bni_102] ≥ 0∧[-2 + (-1)bso_103] ≥ 0)



    We simplified constraint (25) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (27)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_102 + (-1)Bound*bni_102] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (26) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (28)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[-2] ≥ 0∧[-1] + [-1]x6 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_102 + (-1)Bound*bni_102] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[-2 + (-1)bso_103] ≥ 0)



    We solved constraint (28) using rule (IDP_SMT_SPLIT).




For Pair 1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) the following chains were created:
  • We consider the chain 1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]), COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15]) which results in the following constraint:

    (29)    (>(x4[14], x0[14])=TRUEList(x0[14])=List(x0[15])∧java.lang.Object(List(x1[14]))=java.lang.Object(List(x1[15]))∧x3[14]=x3[15]x4[14]=x4[15]x2[14]=x2[15]1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])≥NonInfC∧1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])≥COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])∧(UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥))



    We simplified constraint (29) using rules (I), (II), (IV) which results in the following new constraint:

    (30)    (>(x4[14], x0[14])=TRUE1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])≥NonInfC∧1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])≥COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])∧(UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥))



    We simplified constraint (30) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (31)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧[(-1)bni_104 + (-1)Bound*bni_104] ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (31) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (32)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧[(-1)bni_104 + (-1)Bound*bni_104] ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (32) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (33)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧[(-1)bni_104 + (-1)Bound*bni_104] ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (33) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (34)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_104 + (-1)Bound*bni_104] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)







For Pair 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13]) the following chains were created:
  • We consider the chain 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]), 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13]), 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) which results in the following constraint:

    (35)    (346_0_length_ConstantStackPush(x2[9])=List(x0[13])∧x1[9]=x1[13]x3[9]=x3[13]x0[9]=x0[13]x2[9]=java.lang.Object(List(x2[13]))∧1275_0_test_Load(x1[13])=1522_0_test_Returnx1[13]=x0[12]x2[13]=x1[12]x3[13]=x2[12]1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (35) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (36)    (1518_0_test_NULL(x1[13])=1522_0_test_Return1=x14820_0_length_NULL(x14, x2[13])=List(x0[9]) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), x1[13], x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), x1[13], x3[9], x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (36) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[13])=1522_0_test_Return which results in the following new constraints:

    (37)    (1522_0_test_Return=1522_0_test_Return1=x14820_0_length_NULL(x14, x2[13])=List(x0[9]) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, x2[13], x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))


    (38)    (1518_0_test_NULL(x15)=1522_0_test_Return1=x14820_0_length_NULL(x14, x2[13])=List(x0[9])∧(∀x16,x17,x18,x19:1518_0_test_NULL(x15)=1522_0_test_Return1=x16820_0_length_NULL(x16, x17)=List(x18) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x18), x15, x19, x18, java.lang.Object(List(x17)))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x18), x15, x19, x18, java.lang.Object(List(x17)))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x15), x15, x17, x19)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x15)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x15)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(java.lang.Object(List(x15))), java.lang.Object(List(x15)), x2[13], x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (37) using rules (I), (II) which results in the following new constraint:

    (39)    (1=x14820_0_length_NULL(x14, x2[13])=List(x0[9]) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, x2[13], x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (38) using rule (VI) where we applied the induction hypothesis (∀x16,x17,x18,x19:1518_0_test_NULL(x15)=1522_0_test_Return1=x16820_0_length_NULL(x16, x17)=List(x18) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x18), x15, x19, x18, java.lang.Object(List(x17)))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x18), x15, x19, x18, java.lang.Object(List(x17)))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x15), x15, x17, x19)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)) with σ = [x16 / x14, x17 / x2[13], x18 / x0[9]] which results in the following new constraint:

    (40)    (1113_1_MAIN_INVOKEMETHOD(List(x0[9]), x15, x19, x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), x15, x19, x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x15), x15, x2[13], x19)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x15)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x15)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(java.lang.Object(List(x15))), java.lang.Object(List(x15)), x2[13], x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (39) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x14, x2[13])=List(x0[9]) which results in the following new constraints:

    (41)    (List(x22)=List(x0[9])∧1=x221113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(NULL)))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(NULL)))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, NULL, x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))


    (42)    (Cond_820_0_length_NULL(>(x24, -1), x24, java.lang.Object(List(x23)))=List(x0[9])∧1=x241113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x23)))))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x23)))))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, java.lang.Object(List(x23)), x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (41) using rules (I), (II), (III) which results in the following new constraint:

    (43)    (1113_1_MAIN_INVOKEMETHOD(List(1), NULL, x3[9], 1, java.lang.Object(List(NULL)))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(1), NULL, x3[9], 1, java.lang.Object(List(NULL)))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, NULL, x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (42) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (44)    (Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x23)))=List(x0[9]) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x23)))))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x23)))))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, java.lang.Object(List(x23)), x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (43) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (45)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (40) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (46)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] ≥ 0∧[-1] + [-1]x15 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[-2 + (-1)bso_107] ≥ 0)



    We simplified constraint (44) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (47)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (45) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (48)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (47) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (49)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (46) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (50)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] ≥ 0∧[-1] + [-1]x15 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[-2 + (-1)bso_107] ≥ 0)



    We simplified constraint (48) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (51)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (49) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (52)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (50) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (53)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] ≥ 0∧[-1] + [-1]x15 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[-2 + (-1)bso_107] ≥ 0)



    We simplified constraint (51) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (54)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_106] = 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (52) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (55)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (53) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (56)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] ≥ 0∧[-1] + [-1]x15 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[-2 + (-1)bso_107] ≥ 0)



    We solved constraint (56) using rule (IDP_SMT_SPLIT).




For Pair 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) the following chains were created:
  • We consider the chain COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11]), 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]), 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) which results in the following constraint:

    (57)    (1275_0_test_Load(x1[11])=1522_0_test_Returnx1[11]=x0[12]x2[11]=x1[12]x3[11]=x2[12]346_0_length_ConstantStackPush(x0[12])=List(x0[0])∧x1[12]=x2[0]x2[12]=x3[0]x0[12]=x1[0]1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (57) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (58)    (1518_0_test_NULL(x1[11])=1522_0_test_Return0=x27820_0_length_NULL(x27, x1[11])=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x1[11], x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x1[11], x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (58) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[11])=1522_0_test_Return which results in the following new constraints:

    (59)    (1522_0_test_Return=1522_0_test_Return0=x27820_0_length_NULL(x27, NULL)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[11], x3[11], NULL)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))


    (60)    (1518_0_test_NULL(x28)=1522_0_test_Return0=x27820_0_length_NULL(x27, java.lang.Object(List(x28)))=List(x0[0])∧(∀x29,x30,x31,x32:1518_0_test_NULL(x28)=1522_0_test_Return0=x29820_0_length_NULL(x29, x28)=List(x30) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x28, x31, x32)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x28, x31, x32)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x28), x31, x32, x28)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x28)), x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x28)), x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x28))), x2[11], x3[11], java.lang.Object(List(x28)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (59) using rules (I), (II), (IV), (REWRITING) which results in the following new constraint:

    (61)    (1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[11], x3[11], NULL)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (60) using rules (VII), (REWRITING) which results in the following new constraint:

    (62)    (1518_0_test_NULL(x28)=1522_0_test_Return0=x27∧(∀x29,x30,x31,x32:1518_0_test_NULL(x28)=1522_0_test_Return0=x29820_0_length_NULL(x29, x28)=List(x30) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x28, x31, x32)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x28, x31, x32)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x28), x31, x32, x28)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x27, -1)=x36java.lang.Object(List(x28))=x37Cond_820_0_length_NULL(x36, x27, x37)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x28)), x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x28)), x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x28))), x2[11], x3[11], java.lang.Object(List(x28)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (61) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (63)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_108] = 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (62) using rule (V) (with possible (I) afterwards) using induction on Cond_820_0_length_NULL(x36, x27, x37)=List(x0[0]) which results in the following new constraint:

    (64)    (820_0_length_NULL(+(x39, 1), x38)=List(x0[0])∧1518_0_test_NULL(x28)=1522_0_test_Return0=x39∧(∀x29,x30,x31,x32:1518_0_test_NULL(x28)=1522_0_test_Return0=x29820_0_length_NULL(x29, x28)=List(x30) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x28, x31, x32)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x28, x31, x32)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x28), x31, x32, x28)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x39, -1)=TRUEjava.lang.Object(List(x28))=java.lang.Object(List(x38)) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x28)), x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x28)), x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x28))), x2[11], x3[11], java.lang.Object(List(x28)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (64) using rules (I), (II), (III), (VII), (IDP_CONSTANT_FOLD), (DELETE_TRIVIAL_REDUCESTO) which results in the following new constraint:

    (65)    (1518_0_test_NULL(x38)=1522_0_test_Return∧(∀x29,x30,x31,x32:1518_0_test_NULL(x38)=1522_0_test_Return0=x29820_0_length_NULL(x29, x38)=List(x30) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x38, x31, x32)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x38, x31, x32)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x38), x31, x32, x38)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧820_0_length_NULL(1, x38)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x38)), x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x38)), x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x38))), x2[11], x3[11], java.lang.Object(List(x38)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (65) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (66)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (63) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (67)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_108] = 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (66) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (68)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (67) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (69)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_108] = 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (68) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (70)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (69) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (71)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_108] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (70) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (72)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)



  • We consider the chain 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13]), 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]), 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) which results in the following constraint:

    (73)    (1275_0_test_Load(x1[13])=1522_0_test_Returnx1[13]=x0[12]x2[13]=x1[12]x3[13]=x2[12]346_0_length_ConstantStackPush(x0[12])=List(x0[0])∧x1[12]=x2[0]x2[12]=x3[0]x0[12]=x1[0]1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (73) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (74)    (1518_0_test_NULL(x1[13])=1522_0_test_Return0=x41820_0_length_NULL(x41, x1[13])=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x1[13], x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x1[13], x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (74) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[13])=1522_0_test_Return which results in the following new constraints:

    (75)    (1522_0_test_Return=1522_0_test_Return0=x41820_0_length_NULL(x41, NULL)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[13], x3[13], NULL)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))


    (76)    (1518_0_test_NULL(x42)=1522_0_test_Return0=x41820_0_length_NULL(x41, java.lang.Object(List(x42)))=List(x0[0])∧(∀x43,x44,x45,x46:1518_0_test_NULL(x42)=1522_0_test_Return0=x43820_0_length_NULL(x43, x42)=List(x44) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x42, x45, x46)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x42, x45, x46)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x42), x45, x46, x42)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x42)), x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x42)), x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x42))), x2[13], x3[13], java.lang.Object(List(x42)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (75) using rules (I), (II), (IV), (REWRITING) which results in the following new constraint:

    (77)    (1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[13], x3[13], NULL)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (76) using rules (VII), (REWRITING) which results in the following new constraint:

    (78)    (1518_0_test_NULL(x42)=1522_0_test_Return0=x41∧(∀x43,x44,x45,x46:1518_0_test_NULL(x42)=1522_0_test_Return0=x43820_0_length_NULL(x43, x42)=List(x44) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x42, x45, x46)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x42, x45, x46)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x42), x45, x46, x42)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x41, -1)=x50java.lang.Object(List(x42))=x51Cond_820_0_length_NULL(x50, x41, x51)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x42)), x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x42)), x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x42))), x2[13], x3[13], java.lang.Object(List(x42)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (77) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (79)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_108] = 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (78) using rule (V) (with possible (I) afterwards) using induction on Cond_820_0_length_NULL(x50, x41, x51)=List(x0[0]) which results in the following new constraint:

    (80)    (820_0_length_NULL(+(x53, 1), x52)=List(x0[0])∧1518_0_test_NULL(x42)=1522_0_test_Return0=x53∧(∀x43,x44,x45,x46:1518_0_test_NULL(x42)=1522_0_test_Return0=x43820_0_length_NULL(x43, x42)=List(x44) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x42, x45, x46)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x42, x45, x46)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x42), x45, x46, x42)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x53, -1)=TRUEjava.lang.Object(List(x42))=java.lang.Object(List(x52)) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x42)), x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x42)), x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x42))), x2[13], x3[13], java.lang.Object(List(x42)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (80) using rules (I), (II), (III), (VII), (IDP_CONSTANT_FOLD), (DELETE_TRIVIAL_REDUCESTO) which results in the following new constraint:

    (81)    (1518_0_test_NULL(x52)=1522_0_test_Return∧(∀x43,x44,x45,x46:1518_0_test_NULL(x52)=1522_0_test_Return0=x43820_0_length_NULL(x43, x52)=List(x44) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x52, x45, x46)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x52, x45, x46)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x52), x45, x46, x52)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧820_0_length_NULL(1, x52)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x52)), x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x52)), x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x52))), x2[13], x3[13], java.lang.Object(List(x52)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (81) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (82)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (79) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (83)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_108] = 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (82) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (84)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (83) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (85)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_108] = 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (84) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (86)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (85) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (87)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_108] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (86) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (88)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)



  • We consider the chain COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15]), 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]), 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) which results in the following constraint:

    (89)    (1275_0_test_Load(x1[15])=1522_0_test_Returnx1[15]=x0[12]x2[15]=x1[12]x3[15]=x2[12]346_0_length_ConstantStackPush(x0[12])=List(x0[0])∧x1[12]=x2[0]x2[12]=x3[0]x0[12]=x1[0]1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (89) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (90)    (1518_0_test_NULL(x1[15])=1522_0_test_Return0=x55820_0_length_NULL(x55, x1[15])=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x1[15], x2[15], x3[15])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x1[15], x2[15], x3[15])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[15]), x2[15], x3[15], x1[15])∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (90) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[15])=1522_0_test_Return which results in the following new constraints:

    (91)    (1522_0_test_Return=1522_0_test_Return0=x55820_0_length_NULL(x55, NULL)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[15], x3[15])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[15], x3[15])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[15], x3[15], NULL)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))


    (92)    (1518_0_test_NULL(x56)=1522_0_test_Return0=x55820_0_length_NULL(x55, java.lang.Object(List(x56)))=List(x0[0])∧(∀x57,x58,x59,x60:1518_0_test_NULL(x56)=1522_0_test_Return0=x57820_0_length_NULL(x57, x56)=List(x58) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x56, x59, x60)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x56, x59, x60)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x56), x59, x60, x56)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x56)), x2[15], x3[15])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x56)), x2[15], x3[15])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x56))), x2[15], x3[15], java.lang.Object(List(x56)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (91) using rules (I), (II), (IV), (REWRITING) which results in the following new constraint:

    (93)    (1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[15], x3[15])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[15], x3[15])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[15], x3[15], NULL)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (92) using rules (VII), (REWRITING) which results in the following new constraint:

    (94)    (1518_0_test_NULL(x56)=1522_0_test_Return0=x55∧(∀x57,x58,x59,x60:1518_0_test_NULL(x56)=1522_0_test_Return0=x57820_0_length_NULL(x57, x56)=List(x58) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x56, x59, x60)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x56, x59, x60)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x56), x59, x60, x56)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x55, -1)=x64java.lang.Object(List(x56))=x65Cond_820_0_length_NULL(x64, x55, x65)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x56)), x2[15], x3[15])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x56)), x2[15], x3[15])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x56))), x2[15], x3[15], java.lang.Object(List(x56)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (93) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (95)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_108] = 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (94) using rule (V) (with possible (I) afterwards) using induction on Cond_820_0_length_NULL(x64, x55, x65)=List(x0[0]) which results in the following new constraint:

    (96)    (820_0_length_NULL(+(x67, 1), x66)=List(x0[0])∧1518_0_test_NULL(x56)=1522_0_test_Return0=x67∧(∀x57,x58,x59,x60:1518_0_test_NULL(x56)=1522_0_test_Return0=x57820_0_length_NULL(x57, x56)=List(x58) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x56, x59, x60)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x56, x59, x60)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x56), x59, x60, x56)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x67, -1)=TRUEjava.lang.Object(List(x56))=java.lang.Object(List(x66)) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x56)), x2[15], x3[15])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x56)), x2[15], x3[15])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x56))), x2[15], x3[15], java.lang.Object(List(x56)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (96) using rules (I), (II), (III), (VII), (IDP_CONSTANT_FOLD), (DELETE_TRIVIAL_REDUCESTO) which results in the following new constraint:

    (97)    (1518_0_test_NULL(x66)=1522_0_test_Return∧(∀x57,x58,x59,x60:1518_0_test_NULL(x66)=1522_0_test_Return0=x57820_0_length_NULL(x57, x66)=List(x58) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x66, x59, x60)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x66, x59, x60)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x66), x59, x60, x66)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧820_0_length_NULL(1, x66)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x66)), x2[15], x3[15])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x66)), x2[15], x3[15])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x66))), x2[15], x3[15], java.lang.Object(List(x66)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (97) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (98)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (95) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (99)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_108] = 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (98) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (100)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (99) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (101)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_108] = 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (100) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (102)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (101) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (103)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_108] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (102) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (104)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)







For Pair COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11]) the following chains were created:
  • We consider the chain 1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]), COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11]), 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) which results in the following constraint:

    (105)    (!(=(x4[10], x0[10]))=TRUEList(x0[10])=List(x0[11])∧x1[10]=x1[11]java.lang.Object(List(x3[10]))=java.lang.Object(List(x3[11]))∧x4[10]=x4[11]x2[10]=x2[11]1275_0_test_Load(x1[11])=1522_0_test_Returnx1[11]=x0[12]x2[11]=x1[12]x3[11]=x2[12]COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11])≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



    We simplified constraint (105) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (106)    (!(=(x4[10], x0[10]))=TRUE1518_0_test_NULL(x1[11])=1522_0_test_ReturnCOND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x1[11], java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x1[11], java.lang.Object(List(x3[10])), x4[10], x2[10])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[10], x3[10])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



    We simplified constraint (106) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[11])=1522_0_test_Return which results in the following new constraints:

    (107)    (1522_0_test_Return=1522_0_test_Return!(=(x4[10], x0[10]))=TRUECOND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, x2[10], x3[10])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))


    (108)    (1518_0_test_NULL(x69)=1522_0_test_Return!(=(x4[10], x0[10]))=TRUE∧(∀x70,x71,x72,x73:1518_0_test_NULL(x69)=1522_0_test_Return!(=(x70, x71))=TRUECOND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x71), x69, java.lang.Object(List(x72)), x70, x73)≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x71), x69, java.lang.Object(List(x72)), x70, x73)≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x69), x69, x73, x72)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)) ⇒ COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x69)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x69)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(java.lang.Object(List(x69))), java.lang.Object(List(x69)), x2[10], x3[10])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



    We simplified constraint (107) using rules (I), (II) which results in the following new constraint:

    (109)    (!(=(x4[10], x0[10]))=TRUECOND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, x2[10], x3[10])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



    We simplified constraint (108) using rule (VI) where we applied the induction hypothesis (∀x70,x71,x72,x73:1518_0_test_NULL(x69)=1522_0_test_Return!(=(x70, x71))=TRUECOND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x71), x69, java.lang.Object(List(x72)), x70, x73)≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x71), x69, java.lang.Object(List(x72)), x70, x73)≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x69), x69, x73, x72)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)) with σ = [x70 / x4[10], x71 / x0[10]] which results in the following new constraint:

    (110)    (COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x69, java.lang.Object(List(x72)), x4[10], x73)≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x69, java.lang.Object(List(x72)), x4[10], x73)≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x69), x69, x73, x72)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥) ⇒ COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x69)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x69)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(java.lang.Object(List(x69))), java.lang.Object(List(x69)), x2[10], x3[10])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



    We simplified constraint (109) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (111)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_110 + (-1)Bound*bni_110] ≥ 0∧[(-1)bso_111] ≥ 0)



    We simplified constraint (110) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (112)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[-2] ≥ 0∧[-1] + [-1]x69 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_110 + (-1)Bound*bni_110] ≥ 0∧[-2 + (-1)bso_111] ≥ 0)



    We simplified constraint (111) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (113)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_110 + (-1)Bound*bni_110] ≥ 0∧[(-1)bso_111] ≥ 0)



    We simplified constraint (112) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (114)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[-2] ≥ 0∧[-1] + [-1]x69 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_110 + (-1)Bound*bni_110] ≥ 0∧[-2 + (-1)bso_111] ≥ 0)



    We simplified constraint (113) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (115)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_110 + (-1)Bound*bni_110] ≥ 0∧[(-1)bso_111] ≥ 0)



    We simplified constraint (114) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (116)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[-2] ≥ 0∧[-1] + [-1]x69 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_110 + (-1)Bound*bni_110] ≥ 0∧[-2 + (-1)bso_111] ≥ 0)



    We simplified constraint (115) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (117)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_110 + (-1)Bound*bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_111] ≥ 0)



    We simplified constraint (116) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (118)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[-2] ≥ 0∧[-1] + [-1]x69 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_110 + (-1)Bound*bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[-2 + (-1)bso_111] ≥ 0)



    We solved constraint (118) using rule (IDP_SMT_SPLIT).




For Pair 1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) the following chains were created:
  • We consider the chain 1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]), COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11]) which results in the following constraint:

    (119)    (!(=(x4[10], x0[10]))=TRUEList(x0[10])=List(x0[11])∧x1[10]=x1[11]java.lang.Object(List(x3[10]))=java.lang.Object(List(x3[11]))∧x4[10]=x4[11]x2[10]=x2[11]1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])∧(UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥))



    We simplified constraint (119) using rules (I), (II), (IV) which results in the following new constraint:

    (120)    (!(=(x4[10], x0[10]))=TRUE1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])∧(UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥))



    We simplified constraint (120) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (121)    (0 ≥ 0 ⇒ (UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[(-1)bni_112 + (-1)Bound*bni_112] ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (121) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (122)    (0 ≥ 0 ⇒ (UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[(-1)bni_112 + (-1)Bound*bni_112] ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (122) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (123)    (0 ≥ 0 ⇒ (UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[(-1)bni_112 + (-1)Bound*bni_112] ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (123) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (124)    (0 ≥ 0 ⇒ (UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_112 + (-1)Bound*bni_112] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)







For Pair 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]) the following chains were created:
  • We consider the chain COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]), 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]), 1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) which results in the following constraint:

    (125)    (346_0_length_ConstantStackPush(x1[8])=List(x0[9])∧x2[8]=x2[9]x3[8]=x3[9]x1[8]=x1[9]346_0_length_ConstantStackPush(x2[9])=List(x0[10])∧x1[9]=x1[10]x3[9]=java.lang.Object(List(x3[10]))∧x0[9]=x4[10]x2[9]=x2[10]1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (125) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (126)    (0=x77820_0_length_NULL(x77, x1[8])=List(x0[9])∧0=x78820_0_length_NULL(x78, x2[9])=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), x1[8])≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), x1[8])≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[8], java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (126) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x77, x1[8])=List(x0[9]) which results in the following new constraints:

    (127)    (List(x79)=List(x0[9])∧0=x790=x78820_0_length_NULL(x78, x2[9])=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), NULL, java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (128)    (Cond_820_0_length_NULL(>(x81, -1), x81, java.lang.Object(List(x80)))=List(x0[9])∧0=x810=x78820_0_length_NULL(x78, x2[9])=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x80)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x80)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), java.lang.Object(List(x80)), java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (127) using rules (I), (II), (III) which results in the following new constraint:

    (129)    (0=x78820_0_length_NULL(x78, x2[9])=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(0), x2[9], java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), x2[9], java.lang.Object(List(x3[10])), NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), NULL, java.lang.Object(List(x3[10])), 0, x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (128) using rule (VII) which results in the following new constraint:

    (130)    (>(x81, -1)=x87java.lang.Object(List(x80))=x88Cond_820_0_length_NULL(x87, x81, x88)=List(x0[9])∧0=x810=x78820_0_length_NULL(x78, x2[9])=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x80)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x80)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), java.lang.Object(List(x80)), java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (129) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x78, x2[9])=List(x0[10]) which results in the following new constraints:

    (131)    (List(x82)=List(x0[10])∧0=x821090_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), NULL, java.lang.Object(List(x3[10])), 0, NULL)∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (132)    (Cond_820_0_length_NULL(>(x84, -1), x84, java.lang.Object(List(x83)))=List(x0[10])∧0=x841090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x83)), java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x83)), java.lang.Object(List(x3[10])), NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x83))), NULL, java.lang.Object(List(x3[10])), 0, java.lang.Object(List(x83)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (131) using rules (I), (II), (IV) which results in the following new constraint:

    (133)    (1090_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), NULL, java.lang.Object(List(x3[10])), 0, NULL)∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (132) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (134)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x83)))=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x83)), java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x83)), java.lang.Object(List(x3[10])), NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x83))), NULL, java.lang.Object(List(x3[10])), 0, java.lang.Object(List(x83)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (133) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (135)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_114] = 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (130) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x78, x2[9])=List(x0[10]) which results in the following new constraints:

    (136)    (List(x89)=List(x0[10])∧>(x81, -1)=x87java.lang.Object(List(x80))=x88Cond_820_0_length_NULL(x87, x81, x88)=List(x0[9])∧0=x810=x891090_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x80)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x80)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x80)), java.lang.Object(List(x3[10])), x0[9], NULL)∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (137)    (Cond_820_0_length_NULL(>(x91, -1), x91, java.lang.Object(List(x90)))=List(x0[10])∧>(x81, -1)=x87java.lang.Object(List(x80))=x88Cond_820_0_length_NULL(x87, x81, x88)=List(x0[9])∧0=x810=x911090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x90)), java.lang.Object(List(x3[10])), java.lang.Object(List(x80)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x90)), java.lang.Object(List(x3[10])), java.lang.Object(List(x80)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x90))), java.lang.Object(List(x80)), java.lang.Object(List(x3[10])), x0[9], java.lang.Object(List(x90)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (136) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (138)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x80)))=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x80)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x80)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x80)), java.lang.Object(List(x3[10])), x0[9], NULL)∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (137) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (139)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x80)))=List(x0[9])∧Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x90)))=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x90)), java.lang.Object(List(x3[10])), java.lang.Object(List(x80)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x90)), java.lang.Object(List(x3[10])), java.lang.Object(List(x80)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x90))), java.lang.Object(List(x80)), java.lang.Object(List(x3[10])), x0[9], java.lang.Object(List(x90)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (134) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (140)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (138) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (141)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (139) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (142)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (135) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (143)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_114] = 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (141) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (144)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (140) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (145)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (142) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (146)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (143) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (147)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_114] = 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (144) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (148)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (145) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (149)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (146) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (150)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (147) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (151)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_114] = 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (148) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (152)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (149) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (153)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (150) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (154)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



  • We consider the chain COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]), 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]), 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13]) which results in the following constraint:

    (155)    (346_0_length_ConstantStackPush(x1[8])=List(x0[9])∧x2[8]=x2[9]x3[8]=x3[9]x1[8]=x1[9]346_0_length_ConstantStackPush(x2[9])=List(x0[13])∧x1[9]=x1[13]x3[9]=x3[13]x0[9]=x0[13]x2[9]=java.lang.Object(List(x2[13])) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (155) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (156)    (0=x94820_0_length_NULL(x94, x1[8])=List(x0[9])∧1=x95820_0_length_NULL(x95, x2[13])=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], x1[8])≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], x1[8])≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), x1[8], x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (156) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x94, x1[8])=List(x0[9]) which results in the following new constraints:

    (157)    (List(x96)=List(x0[9])∧0=x961=x95820_0_length_NULL(x95, x2[13])=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), NULL, x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (158)    (Cond_820_0_length_NULL(>(x98, -1), x98, java.lang.Object(List(x97)))=List(x0[9])∧0=x981=x95820_0_length_NULL(x95, x2[13])=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x97)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x97)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), java.lang.Object(List(x97)), x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (157) using rules (I), (II), (III) which results in the following new constraint:

    (159)    (1=x95820_0_length_NULL(x95, x2[13])=List(0) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x2[13])), x3[8], NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x2[13])), x3[8], NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), NULL, x3[8], 0, java.lang.Object(List(x2[13])))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (158) using rule (VII) which results in the following new constraint:

    (160)    (>(x98, -1)=x104java.lang.Object(List(x97))=x105Cond_820_0_length_NULL(x104, x98, x105)=List(x0[9])∧0=x981=x95820_0_length_NULL(x95, x2[13])=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x97)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x97)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), java.lang.Object(List(x97)), x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (159) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x95, x2[13])=List(0) which results in the following new constraints:

    (161)    (List(x99)=List(0)∧1=x991090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(NULL)), x3[8], NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(NULL)), x3[8], NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(NULL))), NULL, x3[8], 0, java.lang.Object(List(NULL)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (162)    (Cond_820_0_length_NULL(>(x101, -1), x101, java.lang.Object(List(x100)))=List(0)∧1=x1011090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x100)))), x3[8], NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x100)))), x3[8], NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x100))))), NULL, x3[8], 0, java.lang.Object(List(java.lang.Object(List(x100)))))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We solved constraint (161) using rules (I), (II), (III).We simplified constraint (162) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (163)    (Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x100)))=List(0) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x100)))), x3[8], NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x100)))), x3[8], NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x100))))), NULL, x3[8], 0, java.lang.Object(List(java.lang.Object(List(x100)))))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (160) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x95, x2[13])=List(x0[9]) which results in the following new constraints:

    (164)    (List(x106)=List(x0[9])∧>(x98, -1)=x104java.lang.Object(List(x97))=x105Cond_820_0_length_NULL(x104, x98, x105)=List(x0[9])∧0=x981=x1061090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x97)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x97)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x97)), x3[8], x0[9], java.lang.Object(List(NULL)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (165)    (Cond_820_0_length_NULL(>(x108, -1), x108, java.lang.Object(List(x107)))=List(x0[9])∧>(x98, -1)=x104java.lang.Object(List(x97))=x105Cond_820_0_length_NULL(x104, x98, x105)=List(x0[9])∧0=x981=x1081090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x107)))), x3[8], java.lang.Object(List(x97)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x107)))), x3[8], java.lang.Object(List(x97)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x107))))), java.lang.Object(List(x97)), x3[8], x0[9], java.lang.Object(List(java.lang.Object(List(x107)))))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (164) using rules (I), (II), (III), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (166)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x97)))=List(1) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x97)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x97)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x97)), x3[8], 1, java.lang.Object(List(NULL)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (165) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (167)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x97)))=List(x0[9])∧Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x107)))=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x107)))), x3[8], java.lang.Object(List(x97)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x107)))), x3[8], java.lang.Object(List(x97)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x107))))), java.lang.Object(List(x97)), x3[8], x0[9], java.lang.Object(List(java.lang.Object(List(x107)))))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (163) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (168)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (166) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (169)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (167) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (170)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (169) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (171)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (168) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (172)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (170) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (173)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (171) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (174)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (172) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (175)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (173) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (176)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (174) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (177)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (175) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (178)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (176) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (179)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)







For Pair COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]) the following chains were created:
  • We consider the chain 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]), COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]), 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]) which results in the following constraint:

    (180)    (<=(x4[7], x0[7])=TRUEList(x0[7])=List(x0[8])∧x1[7]=x1[8]x3[7]=x3[8]x4[7]=x4[8]x2[7]=x2[8]346_0_length_ConstantStackPush(x1[8])=List(x0[9])∧x2[8]=x2[9]x3[8]=x3[9]x1[8]=x1[9]COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (180) using rules (I), (II), (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (181)    (<=(x4[7], x0[7])=TRUE0=x111820_0_length_NULL(x111, x1[8])=List(x0[9]) ⇒ COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), x1[8], x3[7], x4[7], x2[7])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), x1[8], x3[7], x4[7], x2[7])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[7], x3[7], x1[8])∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (181) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x111, x1[8])=List(x0[9]) which results in the following new constraints:

    (182)    (List(x112)=List(x0[9])∧<=(x4[7], x0[7])=TRUE0=x112COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[7], x3[7], NULL)∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))


    (183)    (Cond_820_0_length_NULL(>(x114, -1), x114, java.lang.Object(List(x113)))=List(x0[9])∧<=(x4[7], x0[7])=TRUE0=x114COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x113)), x3[7], x4[7], x2[7])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x113)), x3[7], x4[7], x2[7])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x113))), x2[7], x3[7], java.lang.Object(List(x113)))∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (182) using rules (I), (II), (IV) which results in the following new constraint:

    (184)    (<=(x4[7], x0[7])=TRUECOND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[7], x3[7], NULL)∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (183) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (185)    (<=(x4[7], x0[7])=TRUECond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x113)))=List(x0[9]) ⇒ COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x113)), x3[7], x4[7], x2[7])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x113)), x3[7], x4[7], x2[7])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x113))), x2[7], x3[7], java.lang.Object(List(x113)))∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (184) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (186)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧[(-1)bso_117] ≥ 0)



    We simplified constraint (185) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (187)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧[(-1)bso_117] ≥ 0)



    We simplified constraint (186) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (188)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧[(-1)bso_117] ≥ 0)



    We simplified constraint (187) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (189)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧[(-1)bso_117] ≥ 0)



    We simplified constraint (188) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (190)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧[(-1)bso_117] ≥ 0)



    We simplified constraint (189) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (191)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧[(-1)bso_117] ≥ 0)



    We simplified constraint (190) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (192)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_117] ≥ 0)



    We simplified constraint (191) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (193)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_117] ≥ 0)







For Pair 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]) the following chains were created:
  • We consider the chain 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]), COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]) which results in the following constraint:

    (194)    (<=(x4[7], x0[7])=TRUEList(x0[7])=List(x0[8])∧x1[7]=x1[8]x3[7]=x3[8]x4[7]=x4[8]x2[7]=x2[8]1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥NonInfC∧1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])∧(UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥))



    We simplified constraint (194) using rules (I), (II), (IV) which results in the following new constraint:

    (195)    (<=(x4[7], x0[7])=TRUE1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥NonInfC∧1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])∧(UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥))



    We simplified constraint (195) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (196)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[(-1)bni_118 + (-1)Bound*bni_118] ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (196) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (197)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[(-1)bni_118 + (-1)Bound*bni_118] ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (197) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (198)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[(-1)bni_118 + (-1)Bound*bni_118] ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (198) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (199)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_118 + (-1)Bound*bni_118] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)







For Pair 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]) the following chains were created:
  • We consider the chain COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]), 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]), 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]) which results in the following constraint:

    (200)    (346_0_length_ConstantStackPush(x0[5])=List(x0[6])∧x1[5]=x2[6]x2[5]=x3[6]x0[5]=x1[6]346_0_length_ConstantStackPush(x2[6])=List(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x0[6]=x4[7]x2[6]=x2[7]1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (200) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (201)    (0=x117820_0_length_NULL(x117, x0[5])=List(x0[6])∧0=x118820_0_length_NULL(x118, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], x0[5])≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], x0[5])≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x0[5], x2[5], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (201) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x117, x0[5])=List(x0[6]) which results in the following new constraints:

    (202)    (List(x119)=List(x0[6])∧0=x1190=x118820_0_length_NULL(x118, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), NULL, x2[5], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (203)    (Cond_820_0_length_NULL(>(x121, -1), x121, java.lang.Object(List(x120)))=List(x0[6])∧0=x1210=x118820_0_length_NULL(x118, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x120)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x120)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x120)), x2[5], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (202) using rules (I), (II), (III) which results in the following new constraint:

    (204)    (0=x118820_0_length_NULL(x118, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(0), x2[6], x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), x2[6], x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), NULL, x2[5], 0, x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (203) using rule (VII) which results in the following new constraint:

    (205)    (>(x121, -1)=x127java.lang.Object(List(x120))=x128Cond_820_0_length_NULL(x127, x121, x128)=List(x0[6])∧0=x1210=x118820_0_length_NULL(x118, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x120)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x120)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x120)), x2[5], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (204) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x118, x2[6])=List(x0[7]) which results in the following new constraints:

    (206)    (List(x122)=List(x0[7])∧0=x1221020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), NULL, x2[5], 0, NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (207)    (Cond_820_0_length_NULL(>(x124, -1), x124, java.lang.Object(List(x123)))=List(x0[7])∧0=x1241020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x123)), x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x123)), x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x123))), NULL, x2[5], 0, java.lang.Object(List(x123)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (206) using rules (I), (II), (IV) which results in the following new constraint:

    (208)    (1020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), NULL, x2[5], 0, NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (207) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (209)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x123)))=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x123)), x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x123)), x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x123))), NULL, x2[5], 0, java.lang.Object(List(x123)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (208) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (210)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_120] = 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (205) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x118, x2[6])=List(x0[7]) which results in the following new constraints:

    (211)    (List(x129)=List(x0[7])∧>(x121, -1)=x127java.lang.Object(List(x120))=x128Cond_820_0_length_NULL(x127, x121, x128)=List(x0[6])∧0=x1210=x1291020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x120)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x120)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x120)), x2[5], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (212)    (Cond_820_0_length_NULL(>(x131, -1), x131, java.lang.Object(List(x130)))=List(x0[7])∧>(x121, -1)=x127java.lang.Object(List(x120))=x128Cond_820_0_length_NULL(x127, x121, x128)=List(x0[6])∧0=x1210=x1311020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x130)), x2[5], java.lang.Object(List(x120)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x130)), x2[5], java.lang.Object(List(x120)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x130))), java.lang.Object(List(x120)), x2[5], x0[6], java.lang.Object(List(x130)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (211) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (213)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x120)))=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x120)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x120)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x120)), x2[5], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (212) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (214)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x120)))=List(x0[6])∧Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x130)))=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x130)), x2[5], java.lang.Object(List(x120)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x130)), x2[5], java.lang.Object(List(x120)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x130))), java.lang.Object(List(x120)), x2[5], x0[6], java.lang.Object(List(x130)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (209) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (215)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (213) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (216)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (214) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (217)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (210) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (218)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_120] = 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (216) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (219)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (215) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (220)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (217) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (221)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (218) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (222)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_120] = 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (219) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (223)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (220) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (224)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (221) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (225)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (222) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (226)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_120] = 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (223) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (227)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (224) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (228)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (225) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (229)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



  • We consider the chain 923_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16]), 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]), 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]) which results in the following constraint:

    (230)    (346_0_length_ConstantStackPush(x0[16])=List(x0[6])∧x1[16]=x2[6]x2[16]=x3[6]x0[16]=x1[6]346_0_length_ConstantStackPush(x2[6])=List(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x0[6]=x4[7]x2[6]=x2[7]1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (230) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (231)    (0=x134820_0_length_NULL(x134, x0[16])=List(x0[6])∧0=x135820_0_length_NULL(x135, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], x0[16])≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], x0[16])≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x0[16], x2[16], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (231) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x134, x0[16])=List(x0[6]) which results in the following new constraints:

    (232)    (List(x136)=List(x0[6])∧0=x1360=x135820_0_length_NULL(x135, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), NULL, x2[16], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (233)    (Cond_820_0_length_NULL(>(x138, -1), x138, java.lang.Object(List(x137)))=List(x0[6])∧0=x1380=x135820_0_length_NULL(x135, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], java.lang.Object(List(x137)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], java.lang.Object(List(x137)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x137)), x2[16], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (232) using rules (I), (II), (III) which results in the following new constraint:

    (234)    (0=x135820_0_length_NULL(x135, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(0), x2[6], x2[16], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), x2[6], x2[16], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), NULL, x2[16], 0, x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (233) using rule (VII) which results in the following new constraint:

    (235)    (>(x138, -1)=x144java.lang.Object(List(x137))=x145Cond_820_0_length_NULL(x144, x138, x145)=List(x0[6])∧0=x1380=x135820_0_length_NULL(x135, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], java.lang.Object(List(x137)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], java.lang.Object(List(x137)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x137)), x2[16], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (234) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x135, x2[6])=List(x0[7]) which results in the following new constraints:

    (236)    (List(x139)=List(x0[7])∧0=x1391020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[16], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[16], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), NULL, x2[16], 0, NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (237)    (Cond_820_0_length_NULL(>(x141, -1), x141, java.lang.Object(List(x140)))=List(x0[7])∧0=x1411020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x140)), x2[16], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x140)), x2[16], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x140))), NULL, x2[16], 0, java.lang.Object(List(x140)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (236) using rules (I), (II), (IV) which results in the following new constraint:

    (238)    (1020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[16], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[16], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), NULL, x2[16], 0, NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (237) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (239)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x140)))=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x140)), x2[16], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x140)), x2[16], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x140))), NULL, x2[16], 0, java.lang.Object(List(x140)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (238) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (240)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_120] = 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (235) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x135, x2[6])=List(x0[7]) which results in the following new constraints:

    (241)    (List(x146)=List(x0[7])∧>(x138, -1)=x144java.lang.Object(List(x137))=x145Cond_820_0_length_NULL(x144, x138, x145)=List(x0[6])∧0=x1380=x1461020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(x137)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(x137)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x137)), x2[16], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (242)    (Cond_820_0_length_NULL(>(x148, -1), x148, java.lang.Object(List(x147)))=List(x0[7])∧>(x138, -1)=x144java.lang.Object(List(x137))=x145Cond_820_0_length_NULL(x144, x138, x145)=List(x0[6])∧0=x1380=x1481020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x147)), x2[16], java.lang.Object(List(x137)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x147)), x2[16], java.lang.Object(List(x137)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x147))), java.lang.Object(List(x137)), x2[16], x0[6], java.lang.Object(List(x147)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (241) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (243)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x137)))=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(x137)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(x137)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x137)), x2[16], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (242) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (244)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x137)))=List(x0[6])∧Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x147)))=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x147)), x2[16], java.lang.Object(List(x137)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x147)), x2[16], java.lang.Object(List(x137)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x147))), java.lang.Object(List(x137)), x2[16], x0[6], java.lang.Object(List(x147)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (239) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (245)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (243) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (246)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (244) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (247)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (240) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (248)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_120] = 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (246) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (249)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (245) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (250)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (247) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (251)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (248) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (252)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_120] = 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (249) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (253)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (250) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (254)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (251) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (255)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (252) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (256)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_120] = 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (253) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (257)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (254) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (258)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (255) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (259)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



  • We consider the chain COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]), 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]), 1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) which results in the following constraint:

    (260)    (346_0_length_ConstantStackPush(x0[5])=List(x0[6])∧x1[5]=x2[6]x2[5]=x3[6]x0[5]=x1[6]346_0_length_ConstantStackPush(x2[6])=List(x0[14])∧x1[6]=java.lang.Object(List(x1[14]))∧x3[6]=x3[14]x0[6]=x4[14]x2[6]=x2[14]1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (260) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (261)    (0=x151820_0_length_NULL(x151, x2[6])=List(x0[14])∧1=x152820_0_length_NULL(x152, x1[14])=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x1[14])))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x1[14])), x2[5], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (261) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x151, x2[6])=List(x0[14]) which results in the following new constraints:

    (262)    (List(x153)=List(x0[14])∧0=x1531=x152820_0_length_NULL(x152, x1[14])=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x1[14])))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x1[14])), x2[5], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (263)    (Cond_820_0_length_NULL(>(x155, -1), x155, java.lang.Object(List(x154)))=List(x0[14])∧0=x1551=x152820_0_length_NULL(x152, x1[14])=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x154)), x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x154)), x2[5], java.lang.Object(List(x1[14])))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x154))), java.lang.Object(List(x1[14])), x2[5], x0[6], java.lang.Object(List(x154)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (262) using rules (I), (II), (IV) which results in the following new constraint:

    (264)    (1=x152820_0_length_NULL(x152, x1[14])=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x1[14])))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x1[14])), x2[5], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (263) using rule (VII) which results in the following new constraint:

    (265)    (>(x155, -1)=x161java.lang.Object(List(x154))=x162Cond_820_0_length_NULL(x161, x155, x162)=List(x0[14])∧0=x1551=x152820_0_length_NULL(x152, x1[14])=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x154)), x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x154)), x2[5], java.lang.Object(List(x1[14])))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x154))), java.lang.Object(List(x1[14])), x2[5], x0[6], java.lang.Object(List(x154)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (264) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x152, x1[14])=List(x0[6]) which results in the following new constraints:

    (266)    (List(x156)=List(x0[6])∧1=x1561020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(NULL)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(NULL)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(NULL)), x2[5], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (267)    (Cond_820_0_length_NULL(>(x158, -1), x158, java.lang.Object(List(x157)))=List(x0[6])∧1=x1581020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(java.lang.Object(List(x157)))))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(java.lang.Object(List(x157)))))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(java.lang.Object(List(x157)))), x2[5], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (266) using rules (I), (II), (III) which results in the following new constraint:

    (268)    (1020_1_MAIN_INVOKEMETHOD(List(1), NULL, x2[5], java.lang.Object(List(NULL)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(1), NULL, x2[5], java.lang.Object(List(NULL)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(NULL)), x2[5], 1, NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (267) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (269)    (Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x157)))=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(java.lang.Object(List(x157)))))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(java.lang.Object(List(x157)))))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(java.lang.Object(List(x157)))), x2[5], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (268) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (270)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_120] = 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (265) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x152, x1[14])=List(x0[6]) which results in the following new constraints:

    (271)    (List(x163)=List(x0[6])∧>(x155, -1)=x161java.lang.Object(List(x154))=x162Cond_820_0_length_NULL(x161, x155, x162)=List(x0[14])∧0=x1551=x1631020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x154)), x2[5], java.lang.Object(List(NULL)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x154)), x2[5], java.lang.Object(List(NULL)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x154))), java.lang.Object(List(NULL)), x2[5], x0[6], java.lang.Object(List(x154)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (272)    (Cond_820_0_length_NULL(>(x165, -1), x165, java.lang.Object(List(x164)))=List(x0[6])∧>(x155, -1)=x161java.lang.Object(List(x154))=x162Cond_820_0_length_NULL(x161, x155, x162)=List(x0[14])∧0=x1551=x1651020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x154)), x2[5], java.lang.Object(List(java.lang.Object(List(x164)))))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x154)), x2[5], java.lang.Object(List(java.lang.Object(List(x164)))))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x154))), java.lang.Object(List(java.lang.Object(List(x164)))), x2[5], x0[6], java.lang.Object(List(x154)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (271) using rules (I), (II), (III), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (273)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x154)))=List(x0[14]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(x154)), x2[5], java.lang.Object(List(NULL)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(x154)), x2[5], java.lang.Object(List(NULL)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x154))), java.lang.Object(List(NULL)), x2[5], 1, java.lang.Object(List(x154)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (272) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (274)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x154)))=List(x0[14])∧Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x164)))=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x154)), x2[5], java.lang.Object(List(java.lang.Object(List(x164)))))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x154)), x2[5], java.lang.Object(List(java.lang.Object(List(x164)))))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x154))), java.lang.Object(List(java.lang.Object(List(x164)))), x2[5], x0[6], java.lang.Object(List(x154)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (269) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (275)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (273) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (276)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (274) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (277)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (270) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (278)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_120] = 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (276) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (279)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (275) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (280)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (277) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (281)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (278) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (282)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_120] = 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (279) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (283)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (280) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (284)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (281) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (285)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (282) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (286)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_120] = 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (283) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (287)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (284) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (288)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (285) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (289)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



  • We consider the chain 923_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16]), 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]), 1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) which results in the following constraint:

    (290)    (346_0_length_ConstantStackPush(x0[16])=List(x0[6])∧x1[16]=x2[6]x2[16]=x3[6]x0[16]=x1[6]346_0_length_ConstantStackPush(x2[6])=List(x0[14])∧x1[6]=java.lang.Object(List(x1[14]))∧x3[6]=x3[14]x0[6]=x4[14]x2[6]=x2[14]1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (290) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (291)    (0=x168820_0_length_NULL(x168, x2[6])=List(x0[14])∧1=x169820_0_length_NULL(x169, x1[14])=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], java.lang.Object(List(x1[14])))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], java.lang.Object(List(x1[14])))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x1[14])), x2[16], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (291) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x168, x2[6])=List(x0[14]) which results in the following new constraints:

    (292)    (List(x170)=List(x0[14])∧0=x1701=x169820_0_length_NULL(x169, x1[14])=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(x1[14])))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(x1[14])))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x1[14])), x2[16], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (293)    (Cond_820_0_length_NULL(>(x172, -1), x172, java.lang.Object(List(x171)))=List(x0[14])∧0=x1721=x169820_0_length_NULL(x169, x1[14])=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x171)), x2[16], java.lang.Object(List(x1[14])))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x171)), x2[16], java.lang.Object(List(x1[14])))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x171))), java.lang.Object(List(x1[14])), x2[16], x0[6], java.lang.Object(List(x171)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (292) using rules (I), (II), (IV) which results in the following new constraint:

    (294)    (1=x169820_0_length_NULL(x169, x1[14])=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(x1[14])))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(x1[14])))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x1[14])), x2[16], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (293) using rule (VII) which results in the following new constraint:

    (295)    (>(x172, -1)=x178java.lang.Object(List(x171))=x179Cond_820_0_length_NULL(x178, x172, x179)=List(x0[14])∧0=x1721=x169820_0_length_NULL(x169, x1[14])=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x171)), x2[16], java.lang.Object(List(x1[14])))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x171)), x2[16], java.lang.Object(List(x1[14])))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x171))), java.lang.Object(List(x1[14])), x2[16], x0[6], java.lang.Object(List(x171)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (294) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x169, x1[14])=List(x0[6]) which results in the following new constraints:

    (296)    (List(x173)=List(x0[6])∧1=x1731020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(NULL)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(NULL)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(NULL)), x2[16], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (297)    (Cond_820_0_length_NULL(>(x175, -1), x175, java.lang.Object(List(x174)))=List(x0[6])∧1=x1751020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(java.lang.Object(List(x174)))))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(java.lang.Object(List(x174)))))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(java.lang.Object(List(x174)))), x2[16], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (296) using rules (I), (II), (III) which results in the following new constraint:

    (298)    (1020_1_MAIN_INVOKEMETHOD(List(1), NULL, x2[16], java.lang.Object(List(NULL)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(1), NULL, x2[16], java.lang.Object(List(NULL)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(NULL)), x2[16], 1, NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (297) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (299)    (Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x174)))=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(java.lang.Object(List(x174)))))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(java.lang.Object(List(x174)))))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(java.lang.Object(List(x174)))), x2[16], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (298) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (300)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_120] = 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (295) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x169, x1[14])=List(x0[6]) which results in the following new constraints:

    (301)    (List(x180)=List(x0[6])∧>(x172, -1)=x178java.lang.Object(List(x171))=x179Cond_820_0_length_NULL(x178, x172, x179)=List(x0[14])∧0=x1721=x1801020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x171)), x2[16], java.lang.Object(List(NULL)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x171)), x2[16], java.lang.Object(List(NULL)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x171))), java.lang.Object(List(NULL)), x2[16], x0[6], java.lang.Object(List(x171)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (302)    (Cond_820_0_length_NULL(>(x182, -1), x182, java.lang.Object(List(x181)))=List(x0[6])∧>(x172, -1)=x178java.lang.Object(List(x171))=x179Cond_820_0_length_NULL(x178, x172, x179)=List(x0[14])∧0=x1721=x1821020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x171)), x2[16], java.lang.Object(List(java.lang.Object(List(x181)))))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x171)), x2[16], java.lang.Object(List(java.lang.Object(List(x181)))))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x171))), java.lang.Object(List(java.lang.Object(List(x181)))), x2[16], x0[6], java.lang.Object(List(x171)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (301) using rules (I), (II), (III), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (303)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x171)))=List(x0[14]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(x171)), x2[16], java.lang.Object(List(NULL)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(x171)), x2[16], java.lang.Object(List(NULL)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x171))), java.lang.Object(List(NULL)), x2[16], 1, java.lang.Object(List(x171)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (302) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (304)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x171)))=List(x0[14])∧Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x181)))=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x171)), x2[16], java.lang.Object(List(java.lang.Object(List(x181)))))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x171)), x2[16], java.lang.Object(List(java.lang.Object(List(x181)))))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x171))), java.lang.Object(List(java.lang.Object(List(x181)))), x2[16], x0[6], java.lang.Object(List(x171)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (299) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (305)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (303) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (306)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (304) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (307)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (300) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (308)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_120] = 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (306) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (309)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (305) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (310)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (307) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (311)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (308) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (312)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_120] = 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (309) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (313)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (310) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (314)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (311) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (315)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (312) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (316)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_120] = 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (313) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (317)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (314) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (318)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (315) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (319)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)







For Pair COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]) the following chains were created:
  • We consider the chain 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]), COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]), 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]) which results in the following constraint:

    (320)    (>(x3[4], 0)=TRUEx0[4]=x0[5]x1[4]=x1[5]x2[4]=x2[5]x3[4]=x3[5]346_0_length_ConstantStackPush(x0[5])=List(x0[6])∧x1[5]=x2[6]x2[5]=x3[6]x0[5]=x1[6]COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5])≥NonInfC∧COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5])≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥))



    We simplified constraint (320) using rules (III), (IV), (REWRITING) which results in the following new constraint:

    (321)    (>(x3[4], 0)=TRUE820_0_length_NULL(0, x0[5])=List(x0[6]) ⇒ COND_923_0_MAIN_NE(TRUE, x0[5], x1[4], x2[4], x3[4])≥NonInfC∧COND_923_0_MAIN_NE(TRUE, x0[5], x1[4], x2[4], x3[4])≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[4], x2[4], x0[5])∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥))



    We simplified constraint (321) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (322)    (0 ≥ 0 ⇒ (UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧[(-1)bni_122 + (-1)Bound*bni_122] + [bni_122]x2[4] ≥ 0∧[(-1)bso_123] + x2[4] ≥ 0)



    We simplified constraint (322) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (323)    (0 ≥ 0 ⇒ (UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧[(-1)bni_122 + (-1)Bound*bni_122] + [bni_122]x2[4] ≥ 0∧[(-1)bso_123] + x2[4] ≥ 0)



    We simplified constraint (323) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (324)    (0 ≥ 0 ⇒ (UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧[(-1)bni_122 + (-1)Bound*bni_122] + [bni_122]x2[4] ≥ 0∧[(-1)bso_123] + x2[4] ≥ 0)



    We simplified constraint (324) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (325)    (0 ≥ 0 ⇒ (UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧0 ≥ 0∧[bni_122] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_122 + (-1)Bound*bni_122] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_123] ≥ 0)







For Pair 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]) the following chains were created:
  • We consider the chain 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]), COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]) which results in the following constraint:

    (326)    (>(x3[4], 0)=TRUEx0[4]=x0[5]x1[4]=x1[5]x2[4]=x2[5]x3[4]=x3[5]923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥NonInfC∧923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])∧(UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥))



    We simplified constraint (326) using rule (IV) which results in the following new constraint:

    (327)    (>(x3[4], 0)=TRUE923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥NonInfC∧923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])∧(UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥))



    We simplified constraint (327) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (328)    (0 ≥ 0 ⇒ (UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧[(-1)bni_124 + (-1)Bound*bni_124] + [bni_124]x2[4] ≥ 0∧[(-1)bso_125] ≥ 0)



    We simplified constraint (328) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (329)    (0 ≥ 0 ⇒ (UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧[(-1)bni_124 + (-1)Bound*bni_124] + [bni_124]x2[4] ≥ 0∧[(-1)bso_125] ≥ 0)



    We simplified constraint (329) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (330)    (0 ≥ 0 ⇒ (UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧[(-1)bni_124 + (-1)Bound*bni_124] + [bni_124]x2[4] ≥ 0∧[(-1)bso_125] ≥ 0)



    We simplified constraint (330) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (331)    (0 ≥ 0 ⇒ (UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧0 ≥ 0∧[bni_124] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_124 + (-1)Bound*bni_124] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_125] ≥ 0)







For Pair 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]) the following chains were created:
  • We consider the chain 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]), 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]), 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]) which results in the following constraint:

    (332)    (346_0_length_ConstantStackPush(x3[2])=List(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]x3[2]=x3[3]x1[3]=x0[4]x2[3]=x1[4]x3[3]=x2[4]fresh2[3]=x3[4]896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3])≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3])≥923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (332) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (333)    (0=x185820_0_length_NULL(x185, x3[2])=List(x0[3]) ⇒ 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], x3[2])≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], x3[2])≥923_0_MAIN_NE(x1[2], x2[2], x3[2], fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (333) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x185, x3[2])=List(x0[3]) which results in the following new constraints:

    (334)    (List(x186)=List(x0[3])∧0=x186896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], NULL)≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], NULL)≥923_0_MAIN_NE(x1[2], x2[2], NULL, fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))


    (335)    (Cond_820_0_length_NULL(>(x188, -1), x188, java.lang.Object(List(x187)))=List(x0[3])∧0=x188896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x187)))≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x187)))≥923_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(x187)), fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (334) using rules (I), (II), (III) which results in the following new constraint:

    (336)    (896_1_MAIN_INVOKEMETHOD(List(0), x1[2], x2[2], NULL)≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(0), x1[2], x2[2], NULL)≥923_0_MAIN_NE(x1[2], x2[2], NULL, fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (335) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (337)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x187)))=List(x0[3]) ⇒ 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x187)))≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x187)))≥923_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(x187)), fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (336) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (338)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_126] = 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (337) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (339)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (338) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (340)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_126] = 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (339) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (341)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (340) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (342)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_126] = 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (341) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (343)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (342) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (344)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_126] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (343) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (345)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



  • We consider the chain 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]), 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]), 923_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16]) which results in the following constraint:

    (346)    (346_0_length_ConstantStackPush(x3[2])=List(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]x3[2]=x3[3]x1[3]=x0[16]x2[3]=x1[16]x3[3]=java.lang.Object(List(x2[16]))∧fresh2[3]=0896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3])≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3])≥923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (346) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (347)    (1=x191820_0_length_NULL(x191, x2[16])=List(x0[3]) ⇒ 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x2[16])))≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x2[16])))≥923_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(x2[16])), 0)∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (347) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x191, x2[16])=List(x0[3]) which results in the following new constraints:

    (348)    (List(x192)=List(x0[3])∧1=x192896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(NULL)))≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(NULL)))≥923_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(NULL)), 0)∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))


    (349)    (Cond_820_0_length_NULL(>(x194, -1), x194, java.lang.Object(List(x193)))=List(x0[3])∧1=x194896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(java.lang.Object(List(x193)))))≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(java.lang.Object(List(x193)))))≥923_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(java.lang.Object(List(x193)))), 0)∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (348) using rules (I), (II), (III) which results in the following new constraint:

    (350)    (896_1_MAIN_INVOKEMETHOD(List(1), x1[2], x2[2], java.lang.Object(List(NULL)))≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(1), x1[2], x2[2], java.lang.Object(List(NULL)))≥923_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(NULL)), 0)∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (349) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (351)    (Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x193)))=List(x0[3]) ⇒ 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(java.lang.Object(List(x193)))))≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(java.lang.Object(List(x193)))))≥923_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(java.lang.Object(List(x193)))), 0)∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (350) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (352)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_126] = 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (351) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (353)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (352) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (354)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_126] = 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (353) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (355)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (354) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (356)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_126] = 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (355) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (357)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (356) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (358)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_126] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (357) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (359)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0)







For Pair 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]) the following chains were created:
  • We consider the chain COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]), 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]), 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]) which results in the following constraint:

    (360)    (346_0_length_ConstantStackPush(x3[1])=List(x0[2])∧x2[1]=x1[2]x1[1]=x3[2]x3[1]=x2[2]346_0_length_ConstantStackPush(x3[2])=List(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]x3[2]=x3[3]845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2])≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2])≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (360) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (361)    (0=x197820_0_length_NULL(x197, x3[1])=List(x0[2])∧0=x198820_0_length_NULL(x198, x3[2])=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], x3[1])≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], x3[1])≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x2[1], x3[1], x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (361) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x197, x3[1])=List(x0[2]) which results in the following new constraints:

    (362)    (List(x199)=List(x0[2])∧0=x1990=x198820_0_length_NULL(x198, x3[2])=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x2[1], NULL, x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))


    (363)    (Cond_820_0_length_NULL(>(x201, -1), x201, java.lang.Object(List(x200)))=List(x0[2])∧0=x2010=x198820_0_length_NULL(x198, x3[2])=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x200)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x200)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x2[1], java.lang.Object(List(x200)), x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (362) using rules (I), (II), (III) which results in the following new constraint:

    (364)    (0=x198820_0_length_NULL(x198, x3[2])=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(0), x2[1], x3[2], NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], x3[2], NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x2[1], NULL, x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (363) using rule (VII) which results in the following new constraint:

    (365)    (>(x201, -1)=x207java.lang.Object(List(x200))=x208Cond_820_0_length_NULL(x207, x201, x208)=List(x0[2])∧0=x2010=x198820_0_length_NULL(x198, x3[2])=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x200)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x200)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x2[1], java.lang.Object(List(x200)), x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (364) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x198, x3[2])=List(x0[3]) which results in the following new constraints:

    (366)    (List(x202)=List(x0[3])∧0=x202845_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[1], NULL, NULL)∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))


    (367)    (Cond_820_0_length_NULL(>(x204, -1), x204, java.lang.Object(List(x203)))=List(x0[3])∧0=x204845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x203)), NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x203)), NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x203))), x2[1], NULL, java.lang.Object(List(x203)))∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (366) using rules (I), (II), (IV) which results in the following new constraint:

    (368)    (845_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[1], NULL, NULL)∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (367) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (369)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x203)))=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x203)), NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x203)), NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x203))), x2[1], NULL, java.lang.Object(List(x203)))∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (368) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (370)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_128] = 0∧[(-1)bso_129] ≥ 0)



    We simplified constraint (365) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x198, x3[2])=List(x0[3]) which results in the following new constraints:

    (371)    (List(x209)=List(x0[3])∧>(x201, -1)=x207java.lang.Object(List(x200))=x208Cond_820_0_length_NULL(x207, x201, x208)=List(x0[2])∧0=x2010=x209845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x200)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x200)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[1], java.lang.Object(List(x200)), NULL)∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))


    (372)    (Cond_820_0_length_NULL(>(x211, -1), x211, java.lang.Object(List(x210)))=List(x0[3])∧>(x201, -1)=x207java.lang.Object(List(x200))=x208Cond_820_0_length_NULL(x207, x201, x208)=List(x0[2])∧0=x2010=x211845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x210)), java.lang.Object(List(x200)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x210)), java.lang.Object(List(x200)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x210))), x2[1], java.lang.Object(List(x200)), java.lang.Object(List(x210)))∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (371) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (373)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x200)))=List(x0[2]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x200)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x200)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[1], java.lang.Object(List(x200)), NULL)∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (372) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (374)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x200)))=List(x0[2])∧Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x210)))=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x210)), java.lang.Object(List(x200)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x210)), java.lang.Object(List(x200)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x210))), x2[1], java.lang.Object(List(x200)), java.lang.Object(List(x210)))∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (369) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (375)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_129] ≥ 0)



    We simplified constraint (373) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (376)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_129] ≥ 0)



    We simplified constraint (374) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (377)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_129] ≥ 0)



    We simplified constraint (370) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (378)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_128] = 0∧[(-1)bso_129] ≥ 0)



    We simplified constraint (376) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (379)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_129] ≥ 0)



    We simplified constraint (375) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (380)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_129] ≥ 0)



    We simplified constraint (377) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (381)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_129] ≥ 0)



    We simplified constraint (378) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (382)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_128] = 0∧[(-1)bso_129] ≥ 0)



    We simplified constraint (379) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (383)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_129] ≥ 0)



    We simplified constraint (380) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (384)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_129] ≥ 0)



    We simplified constraint (381) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (385)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_129] ≥ 0)



    We simplified constraint (382) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (386)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_128] = 0∧0 ≥ 0∧[(-1)bso_129] ≥ 0)



    We simplified constraint (383) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (387)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_129] ≥ 0)



    We simplified constraint (384) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (388)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_129] ≥ 0)



    We simplified constraint (385) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (389)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_129] ≥ 0)







For Pair COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]) the following chains were created:
  • We consider the chain 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]), COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]), 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]) which results in the following constraint:

    (390)    (>(x0[0], 0)=TRUEList(x0[0])=List(x0[1])∧x2[0]=x2[1]x3[0]=x3[1]x1[0]=x1[1]346_0_length_ConstantStackPush(x3[1])=List(x0[2])∧x2[1]=x1[2]x1[1]=x3[2]x3[1]=x2[2]COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1])≥NonInfC∧COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1])≥845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])∧(UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥))



    We simplified constraint (390) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (391)    (>(x0[0], 0)=TRUE820_0_length_NULL(0, x3[1])=List(x0[2]) ⇒ COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[0]), x2[0], x3[1], x1[0])≥NonInfC∧COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[0]), x2[0], x3[1], x1[0])≥845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[0], x1[0], x3[1])∧(UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥))



    We simplified constraint (391) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (392)    (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)bni_130 + (-1)Bound*bni_130] + [bni_130]x1[0] ≥ 0∧[(-1)bso_131] ≥ 0)



    We simplified constraint (392) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (393)    (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)bni_130 + (-1)Bound*bni_130] + [bni_130]x1[0] ≥ 0∧[(-1)bso_131] ≥ 0)



    We simplified constraint (393) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (394)    (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)bni_130 + (-1)Bound*bni_130] + [bni_130]x1[0] ≥ 0∧[(-1)bso_131] ≥ 0)



    We simplified constraint (394) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (395)    (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[bni_130] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_130 + (-1)Bound*bni_130] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_131] ≥ 0)







For Pair 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) the following chains were created:
  • We consider the chain 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]), COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]) which results in the following constraint:

    (396)    (>(x0[0], 0)=TRUEList(x0[0])=List(x0[1])∧x2[0]=x2[1]x3[0]=x3[1]x1[0]=x1[1]346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])∧(UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥))



    We simplified constraint (396) using rules (I), (II), (IV) which results in the following new constraint:

    (397)    (>(x0[0], 0)=TRUE346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])∧(UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥))



    We simplified constraint (397) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (398)    (0 ≥ 0 ⇒ (UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[(-1)bni_132 + (-1)Bound*bni_132] + [bni_132]x1[0] ≥ 0∧[(-1)bso_133] ≥ 0)



    We simplified constraint (398) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (399)    (0 ≥ 0 ⇒ (UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[(-1)bni_132 + (-1)Bound*bni_132] + [bni_132]x1[0] ≥ 0∧[(-1)bso_133] ≥ 0)



    We simplified constraint (399) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (400)    (0 ≥ 0 ⇒ (UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[(-1)bni_132 + (-1)Bound*bni_132] + [bni_132]x1[0] ≥ 0∧[(-1)bso_133] ≥ 0)



    We simplified constraint (400) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (401)    (0 ≥ 0 ⇒ (UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[bni_132] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_132 + (-1)Bound*bni_132] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_133] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 923_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])
    • ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧[bni_100] = 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_101] ≥ 0)
    • ((UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_101] ≥ 0)

  • COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])
    • (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_102 + (-1)Bound*bni_102] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_103] ≥ 0)

  • 1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_104 + (-1)Bound*bni_104] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)

  • 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
    • ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_106] = 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
    • ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

  • 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
    • ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_108] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)
    • ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)
    • ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_108] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)
    • ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)
    • ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_108] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)
    • ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)

  • COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
    • (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_110 + (-1)Bound*bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_111] ≥ 0)

  • 1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_112 + (-1)Bound*bni_112] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)

  • 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_114] = 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)

  • COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
    • (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_117] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_117] ≥ 0)

  • 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_118 + (-1)Bound*bni_118] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)

  • 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_120] = 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_120] = 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_120] = 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_120] = 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)

  • COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
    • (0 ≥ 0 ⇒ (UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧0 ≥ 0∧[bni_122] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_122 + (-1)Bound*bni_122] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_123] ≥ 0)

  • 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧0 ≥ 0∧[bni_124] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_124 + (-1)Bound*bni_124] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_125] ≥ 0)

  • 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
    • ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_126] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0)
    • ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0)
    • ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_126] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0)
    • ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0)

  • 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
    • ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_128] = 0∧0 ≥ 0∧[(-1)bso_129] ≥ 0)
    • ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_129] ≥ 0)
    • ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_129] ≥ 0)
    • ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_129] ≥ 0)

  • COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
    • (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[bni_130] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_130 + (-1)Bound*bni_130] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_131] ≥ 0)

  • 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[bni_132] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_132 + (-1)Bound*bni_132] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_133] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers with natural coefficients for non-tuple symbols [NONINF][POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(346_0_length_ConstantStackPush(x1)) = 0   
POL(820_0_length_NULL(x1, x2)) = 0   
POL(0) = 0   
POL(1275_0_test_Load(x1)) = x1   
POL(1518_0_test_NULL(x1)) = 0   
POL(NULL) = 0   
POL(List(x1)) = 0   
POL(java.lang.Object(x1)) = [2]   
POL(Cond_820_0_length_NULL(x1, x2, x3)) = 0   
POL(>(x1, x2)) = 0   
POL(-1) = 0   
POL(+(x1, x2)) = 0   
POL(1) = 0   
POL(1522_0_test_Return) = 0   
POL(923_0_MAIN_NE(x1, x2, x3, x4)) = [-1] + x3   
POL(1020_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + [-1]x1   
POL(COND_1050_1_MAIN_INVOKEMETHOD1(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x2   
POL(1275_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x2   
POL(1050_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + [-1]x1   
POL(1113_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x1   
POL(346_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + [2]x1   
POL(COND_1113_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [1] + [-1]x4 + [-1]x2   
POL(!(x1)) = 0   
POL(=(x1, x2)) = 0   
POL(1090_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + [-1]x1   
POL(COND_1050_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x2   
POL(<=(x1, x2)) = 0   
POL(COND_923_0_MAIN_NE(x1, x2, x3, x4, x5)) = [-1] + x4   
POL(896_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + x1   
POL(845_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x3 + [-1]x1   
POL(COND_346_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x5 + [-1]x2   

The following pairs are in P>:

923_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])

The following pairs are in Pbound:

COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])
1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])
COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])
COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])

The following pairs are in P:

COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])
1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])
1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])
896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])

At least the following rules have been oriented under context sensitive arithmetic replacement:

346_0_length_ConstantStackPush(x0)1820_0_length_NULL(0, x0)1
820_0_length_NULL(x0, NULL)1List(x0)1
820_0_length_NULL(x1, java.lang.Object(List(x0)))1Cond_820_0_length_NULL(>(x1, -1), x1, java.lang.Object(List(x0)))1
Cond_820_0_length_NULL(TRUE, x1, java.lang.Object(List(x0)))1820_0_length_NULL(+(x1, 1), x0)1
1275_0_test_Load(x0)11518_0_test_NULL(x0)1
1518_0_test_NULL(NULL)11522_0_test_Return1
1518_0_test_NULL(java.lang.Object(List(x0)))11518_0_test_NULL(x0)1

(41) Complex Obligation (AND)

(42) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
346_0_length_ConstantStackPush(x0) → 820_0_length_NULL(0, x0)
1275_0_test_Load(x0) → 1518_0_test_NULL(x0)
820_0_length_NULL(x0, NULL) → List(x0)
820_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_820_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_820_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 820_0_length_NULL(x1 + 1, x0)
1518_0_test_NULL(NULL) → 1522_0_test_Return
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)

The integer pair graph contains the following rules and edges:
(15): COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])
(14): 1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(x4[14] > x0[14], List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
(13): 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
(12): 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
(11): COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
(10): 1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(x4[10] = x0[10]), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
(9): 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
(8): COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
(7): 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(x4[7] <= x0[7], List(x0[7]), x1[7], x3[7], x4[7], x2[7])
(6): 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
(5): COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
(4): 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(x3[4] > 0, x0[4], x1[4], x2[4], x3[4])
(3): 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
(2): 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
(1): COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
(0): 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(x0[0] > 0, List(x0[0]), x2[0], x3[0], x1[0])

(12) -> (0), if (346_0_length_ConstantStackPush(x0[12]) →* List(x0[0])∧x1[12]* x2[0]x2[12]* x3[0]x0[12]* x1[0])


(0) -> (1), if (x0[0] > 0List(x0[0]) →* List(x0[1])∧x2[0]* x2[1]x3[0]* x3[1]x1[0]* x1[1])


(1) -> (2), if (346_0_length_ConstantStackPush(x3[1]) →* List(x0[2])∧x2[1]* x1[2]x1[1]* x3[2]x3[1]* x2[2])


(2) -> (3), if (346_0_length_ConstantStackPush(x3[2]) →* List(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x3[2]* x3[3])


(3) -> (4), if (x1[3]* x0[4]x2[3]* x1[4]x3[3]* x2[4]fresh2[3]* x3[4])


(4) -> (5), if (x3[4] > 0x0[4]* x0[5]x1[4]* x1[5]x2[4]* x2[5]x3[4]* x3[5])


(5) -> (6), if (346_0_length_ConstantStackPush(x0[5]) →* List(x0[6])∧x1[5]* x2[6]x2[5]* x3[6]x0[5]* x1[6])


(6) -> (7), if (346_0_length_ConstantStackPush(x2[6]) →* List(x0[7])∧x1[6]* x1[7]x3[6]* x3[7]x0[6]* x4[7]x2[6]* x2[7])


(7) -> (8), if (x4[7] <= x0[7]List(x0[7]) →* List(x0[8])∧x1[7]* x1[8]x3[7]* x3[8]x4[7]* x4[8]x2[7]* x2[8])


(8) -> (9), if (346_0_length_ConstantStackPush(x1[8]) →* List(x0[9])∧x2[8]* x2[9]x3[8]* x3[9]x1[8]* x1[9])


(9) -> (10), if (346_0_length_ConstantStackPush(x2[9]) →* List(x0[10])∧x1[9]* x1[10]x3[9]* java.lang.Object(List(x3[10]))∧x0[9]* x4[10]x2[9]* x2[10])


(10) -> (11), if (!(x4[10] = x0[10]) ∧List(x0[10]) →* List(x0[11])∧x1[10]* x1[11]java.lang.Object(List(x3[10])) →* java.lang.Object(List(x3[11]))∧x4[10]* x4[11]x2[10]* x2[11])


(11) -> (12), if (1275_0_test_Load(x1[11]) →* 1522_0_test_Returnx1[11]* x0[12]x2[11]* x1[12]x3[11]* x2[12])


(13) -> (12), if (1275_0_test_Load(x1[13]) →* 1522_0_test_Returnx1[13]* x0[12]x2[13]* x1[12]x3[13]* x2[12])


(15) -> (12), if (1275_0_test_Load(x1[15]) →* 1522_0_test_Returnx1[15]* x0[12]x2[15]* x1[12]x3[15]* x2[12])


(9) -> (13), if (346_0_length_ConstantStackPush(x2[9]) →* List(x0[13])∧x1[9]* x1[13]x3[9]* x3[13]x0[9]* x0[13]x2[9]* java.lang.Object(List(x2[13])))


(6) -> (14), if (346_0_length_ConstantStackPush(x2[6]) →* List(x0[14])∧x1[6]* java.lang.Object(List(x1[14]))∧x3[6]* x3[14]x0[6]* x4[14]x2[6]* x2[14])


(14) -> (15), if (x4[14] > x0[14]List(x0[14]) →* List(x0[15])∧java.lang.Object(List(x1[14])) →* java.lang.Object(List(x1[15]))∧x3[14]* x3[15]x4[14]* x4[15]x2[14]* x2[15])



The set Q consists of the following terms:
346_0_length_ConstantStackPush(x0)
937_0_length_ConstantStackPush(java.lang.Object(List(x0)))
820_0_length_NULL(x0, NULL)
820_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_820_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))
1275_0_test_Load(x0)
1518_0_test_NULL(NULL)
1518_0_test_NULL(java.lang.Object(List(x0)))

(43) IDPNonInfProof (SOUND transformation)

Used the following options for this NonInfProof:
IDPGPoloSolver: Range: [(-1,2)] IsNat: true Interpretation Shape Heuristic: aprove.DPFramework.IDPProblem.Processors.nonInf.poly.IdpDefaultShapeHeuristic@651d26b3 Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 1 Max Right Steps: 1

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15]) the following chains were created:
  • We consider the chain 1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]), COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15]), 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) which results in the following constraint:

    (1)    (>(x4[14], x0[14])=TRUEList(x0[14])=List(x0[15])∧java.lang.Object(List(x1[14]))=java.lang.Object(List(x1[15]))∧x3[14]=x3[15]x4[14]=x4[15]x2[14]=x2[15]1275_0_test_Load(x1[15])=1522_0_test_Returnx1[15]=x0[12]x2[15]=x1[12]x3[15]=x2[12]COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



    We simplified constraint (1) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (2)    (>(x4[14], x0[14])=TRUE1518_0_test_NULL(x1[15])=1522_0_test_ReturnCOND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(x1[15])), x3[14], x4[14], x2[14])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(x1[15])), x3[14], x4[14], x2[14])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[14], x3[14])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



    We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[15])=1522_0_test_Return which results in the following new constraints:

    (3)    (1522_0_test_Return=1522_0_test_Return>(x4[14], x0[14])=TRUECOND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(NULL)), x3[14], x4[14], x2[14])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(NULL)), x3[14], x4[14], x2[14])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, x2[14], x3[14])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))


    (4)    (1518_0_test_NULL(x0)=1522_0_test_Return>(x4[14], x0[14])=TRUE∧(∀x1,x2,x3,x4:1518_0_test_NULL(x0)=1522_0_test_Return>(x1, x2)=TRUECOND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x2), java.lang.Object(List(x0)), x3, x1, x4)≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x2), java.lang.Object(List(x0)), x3, x1, x4)≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x0), x0, x4, x3)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)) ⇒ COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(java.lang.Object(List(x0)))), x3[14], x4[14], x2[14])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(java.lang.Object(List(x0)))), x3[14], x4[14], x2[14])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(java.lang.Object(List(x0))), java.lang.Object(List(x0)), x2[14], x3[14])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



    We simplified constraint (3) using rules (I), (II) which results in the following new constraint:

    (5)    (>(x4[14], x0[14])=TRUECOND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(NULL)), x3[14], x4[14], x2[14])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(NULL)), x3[14], x4[14], x2[14])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, x2[14], x3[14])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



    We simplified constraint (4) using rule (VI) where we applied the induction hypothesis (∀x1,x2,x3,x4:1518_0_test_NULL(x0)=1522_0_test_Return>(x1, x2)=TRUECOND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x2), java.lang.Object(List(x0)), x3, x1, x4)≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x2), java.lang.Object(List(x0)), x3, x1, x4)≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x0), x0, x4, x3)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)) with σ = [x1 / x4[14], x2 / x0[14]] which results in the following new constraint:

    (6)    (COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(x0)), x3, x4[14], x4)≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(x0)), x3, x4[14], x4)≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x0), x0, x4, x3)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥) ⇒ COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(java.lang.Object(List(x0)))), x3[14], x4[14], x2[14])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(java.lang.Object(List(x0)))), x3[14], x4[14], x2[14])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(java.lang.Object(List(x0))), java.lang.Object(List(x0)), x2[14], x3[14])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



    We simplified constraint (5) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (7)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(3)bni_100 + (-1)Bound*bni_100] + [bni_100]x2[14] + [bni_100]x3[14] ≥ 0∧[2 + (-1)bso_101] ≥ 0)



    We simplified constraint (6) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (8)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[-2] + x4 + x3 + [2]x0 ≥ 0∧[-1] + x0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_100 + (-1)Bound*bni_100] + [bni_100]x2[14] + [bni_100]x3[14] + [(4)bni_100]x0 ≥ 0∧[(-1)bso_101] + [2]x0 ≥ 0)



    We simplified constraint (7) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (9)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(3)bni_100 + (-1)Bound*bni_100] + [bni_100]x2[14] + [bni_100]x3[14] ≥ 0∧[2 + (-1)bso_101] ≥ 0)



    We simplified constraint (8) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (10)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[-2] + x4 + x3 + [2]x0 ≥ 0∧[-1] + x0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_100 + (-1)Bound*bni_100] + [bni_100]x2[14] + [bni_100]x3[14] + [(4)bni_100]x0 ≥ 0∧[(-1)bso_101] + [2]x0 ≥ 0)



    We simplified constraint (9) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (11)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(3)bni_100 + (-1)Bound*bni_100] + [bni_100]x2[14] + [bni_100]x3[14] ≥ 0∧[2 + (-1)bso_101] ≥ 0)



    We simplified constraint (10) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (12)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[-2] + x4 + x3 + [2]x0 ≥ 0∧[-1] + x0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_100 + (-1)Bound*bni_100] + [bni_100]x2[14] + [bni_100]x3[14] + [(4)bni_100]x0 ≥ 0∧[(-1)bso_101] + [2]x0 ≥ 0)



    We simplified constraint (11) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (13)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[bni_100] ≥ 0∧0 ≥ 0∧[bni_100] ≥ 0∧0 ≥ 0∧[(3)bni_100 + (-1)Bound*bni_100] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_101] ≥ 0)



    We simplified constraint (12) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (14)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[-2] + x4 + x3 + [2]x0 ≥ 0∧[-1] + x0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[bni_100] ≥ 0∧[bni_100] ≥ 0∧[(-1)bni_100 + (-1)Bound*bni_100] + [(4)bni_100]x0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_101] + [2]x0 ≥ 0)







For Pair 1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) the following chains were created:
  • We consider the chain 1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]), COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15]) which results in the following constraint:

    (15)    (>(x4[14], x0[14])=TRUEList(x0[14])=List(x0[15])∧java.lang.Object(List(x1[14]))=java.lang.Object(List(x1[15]))∧x3[14]=x3[15]x4[14]=x4[15]x2[14]=x2[15]1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])≥NonInfC∧1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])≥COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])∧(UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥))



    We simplified constraint (15) using rules (I), (II), (IV) which results in the following new constraint:

    (16)    (>(x4[14], x0[14])=TRUE1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])≥NonInfC∧1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])≥COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])∧(UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥))



    We simplified constraint (16) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (17)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧[(-1)bni_102 + (-1)Bound*bni_102] + [bni_102]x2[14] + [bni_102]x3[14] + [(2)bni_102]x1[14] ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (17) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (18)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧[(-1)bni_102 + (-1)Bound*bni_102] + [bni_102]x2[14] + [bni_102]x3[14] + [(2)bni_102]x1[14] ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (18) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (19)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧[(-1)bni_102 + (-1)Bound*bni_102] + [bni_102]x2[14] + [bni_102]x3[14] + [(2)bni_102]x1[14] ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (19) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (20)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧[bni_102] ≥ 0∧0 ≥ 0∧[bni_102] ≥ 0∧[(2)bni_102] ≥ 0∧0 ≥ 0∧[(-1)bni_102 + (-1)Bound*bni_102] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_103] ≥ 0)







For Pair 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13]) the following chains were created:
  • We consider the chain 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]), 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13]), 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) which results in the following constraint:

    (21)    (346_0_length_ConstantStackPush(x2[9])=List(x0[13])∧x1[9]=x1[13]x3[9]=x3[13]x0[9]=x0[13]x2[9]=java.lang.Object(List(x2[13]))∧1275_0_test_Load(x1[13])=1522_0_test_Returnx1[13]=x0[12]x2[13]=x1[12]x3[13]=x2[12]1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (21) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (22)    (1518_0_test_NULL(x1[13])=1522_0_test_Return1=x8820_0_length_NULL(x8, x2[13])=List(x0[9]) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), x1[13], x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), x1[13], x3[9], x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (22) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[13])=1522_0_test_Return which results in the following new constraints:

    (23)    (1522_0_test_Return=1522_0_test_Return1=x8820_0_length_NULL(x8, x2[13])=List(x0[9]) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, x2[13], x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))


    (24)    (1518_0_test_NULL(x9)=1522_0_test_Return1=x8820_0_length_NULL(x8, x2[13])=List(x0[9])∧(∀x10,x11,x12,x13:1518_0_test_NULL(x9)=1522_0_test_Return1=x10820_0_length_NULL(x10, x11)=List(x12) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x12), x9, x13, x12, java.lang.Object(List(x11)))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x12), x9, x13, x12, java.lang.Object(List(x11)))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x9), x9, x11, x13)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x9)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x9)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(java.lang.Object(List(x9))), java.lang.Object(List(x9)), x2[13], x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (23) using rules (I), (II) which results in the following new constraint:

    (25)    (1=x8820_0_length_NULL(x8, x2[13])=List(x0[9]) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, x2[13], x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (24) using rule (VI) where we applied the induction hypothesis (∀x10,x11,x12,x13:1518_0_test_NULL(x9)=1522_0_test_Return1=x10820_0_length_NULL(x10, x11)=List(x12) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x12), x9, x13, x12, java.lang.Object(List(x11)))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x12), x9, x13, x12, java.lang.Object(List(x11)))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x9), x9, x11, x13)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)) with σ = [x10 / x8, x11 / x2[13], x12 / x0[9]] which results in the following new constraint:

    (26)    (1113_1_MAIN_INVOKEMETHOD(List(x0[9]), x9, x13, x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), x9, x13, x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x9), x9, x2[13], x13)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x9)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x9)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(java.lang.Object(List(x9))), java.lang.Object(List(x9)), x2[13], x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (25) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x8, x2[13])=List(x0[9]) which results in the following new constraints:

    (27)    (List(x16)=List(x0[9])∧1=x161113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(NULL)))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(NULL)))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, NULL, x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))


    (28)    (Cond_820_0_length_NULL(>(x18, -1), x18, java.lang.Object(List(x17)))=List(x0[9])∧1=x181113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x17)))))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x17)))))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, java.lang.Object(List(x17)), x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (27) using rules (I), (II), (III) which results in the following new constraint:

    (29)    (1113_1_MAIN_INVOKEMETHOD(List(1), NULL, x3[9], 1, java.lang.Object(List(NULL)))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(1), NULL, x3[9], 1, java.lang.Object(List(NULL)))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, NULL, x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (28) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (30)    (Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x17)))=List(x0[9]) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x17)))))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x17)))))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, java.lang.Object(List(x17)), x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (29) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (31)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_104] = 0∧[2 + (-1)bso_105] ≥ 0)



    We simplified constraint (26) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (32)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] + [2]x2[13] + x13 + x9 ≥ 0∧[-1] + x2[13] ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[(-1)bso_105] + x2[13] ≥ 0)



    We simplified constraint (30) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (33)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[(-1)bso_105] + [2]x17 ≥ 0)



    We simplified constraint (31) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (34)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_104] = 0∧[2 + (-1)bso_105] ≥ 0)



    We simplified constraint (33) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (35)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[(-1)bso_105] + [2]x17 ≥ 0)



    We simplified constraint (32) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (36)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] + [2]x2[13] + x13 + x9 ≥ 0∧[-1] + x2[13] ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[(-1)bso_105] + x2[13] ≥ 0)



    We simplified constraint (34) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (37)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_104] = 0∧[2 + (-1)bso_105] ≥ 0)



    We simplified constraint (35) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (38)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[(-1)bso_105] + [2]x17 ≥ 0)



    We simplified constraint (36) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (39)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] + [2]x2[13] + x13 + x9 ≥ 0∧[-1] + x2[13] ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[(-1)bso_105] + x2[13] ≥ 0)



    We simplified constraint (37) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (40)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_104] = 0∧0 ≥ 0∧[2 + (-1)bso_105] ≥ 0)



    We simplified constraint (38) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (41)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0∧[1] ≥ 0)



    We simplified constraint (39) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (42)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] + [2]x2[13] + x13 + x9 ≥ 0∧[-1] + x2[13] ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] + x2[13] ≥ 0)







For Pair 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) the following chains were created:
  • We consider the chain COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11]), 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]), 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) which results in the following constraint:

    (43)    (1275_0_test_Load(x1[11])=1522_0_test_Returnx1[11]=x0[12]x2[11]=x1[12]x3[11]=x2[12]346_0_length_ConstantStackPush(x0[12])=List(x0[0])∧x1[12]=x2[0]x2[12]=x3[0]x0[12]=x1[0]1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (43) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (44)    (1518_0_test_NULL(x1[11])=1522_0_test_Return0=x21820_0_length_NULL(x21, x1[11])=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x1[11], x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x1[11], x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (44) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[11])=1522_0_test_Return which results in the following new constraints:

    (45)    (1522_0_test_Return=1522_0_test_Return0=x21820_0_length_NULL(x21, NULL)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[11], x3[11], NULL)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))


    (46)    (1518_0_test_NULL(x22)=1522_0_test_Return0=x21820_0_length_NULL(x21, java.lang.Object(List(x22)))=List(x0[0])∧(∀x23,x24,x25,x26:1518_0_test_NULL(x22)=1522_0_test_Return0=x23820_0_length_NULL(x23, x22)=List(x24) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x22, x25, x26)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x22, x25, x26)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x22), x25, x26, x22)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x22)), x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x22)), x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x22))), x2[11], x3[11], java.lang.Object(List(x22)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (45) using rules (I), (II), (IV), (REWRITING) which results in the following new constraint:

    (47)    (1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[11], x3[11], NULL)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (46) using rules (VII), (REWRITING) which results in the following new constraint:

    (48)    (1518_0_test_NULL(x22)=1522_0_test_Return0=x21∧(∀x23,x24,x25,x26:1518_0_test_NULL(x22)=1522_0_test_Return0=x23820_0_length_NULL(x23, x22)=List(x24) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x22, x25, x26)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x22, x25, x26)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x22), x25, x26, x22)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x21, -1)=x30java.lang.Object(List(x22))=x31Cond_820_0_length_NULL(x30, x21, x31)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x22)), x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x22)), x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x22))), x2[11], x3[11], java.lang.Object(List(x22)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (47) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (49)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (48) using rule (V) (with possible (I) afterwards) using induction on Cond_820_0_length_NULL(x30, x21, x31)=List(x0[0]) which results in the following new constraint:

    (50)    (820_0_length_NULL(+(x33, 1), x32)=List(x0[0])∧1518_0_test_NULL(x22)=1522_0_test_Return0=x33∧(∀x23,x24,x25,x26:1518_0_test_NULL(x22)=1522_0_test_Return0=x23820_0_length_NULL(x23, x22)=List(x24) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x22, x25, x26)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x22, x25, x26)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x22), x25, x26, x22)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x33, -1)=TRUEjava.lang.Object(List(x22))=java.lang.Object(List(x32)) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x22)), x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x22)), x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x22))), x2[11], x3[11], java.lang.Object(List(x22)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (50) using rules (I), (II), (III), (VII), (IDP_CONSTANT_FOLD), (DELETE_TRIVIAL_REDUCESTO) which results in the following new constraint:

    (51)    (1518_0_test_NULL(x32)=1522_0_test_Return∧(∀x23,x24,x25,x26:1518_0_test_NULL(x32)=1522_0_test_Return0=x23820_0_length_NULL(x23, x32)=List(x24) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x32, x25, x26)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x32, x25, x26)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x32), x25, x26, x32)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧820_0_length_NULL(1, x32)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x32)), x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x32)), x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x32))), x2[11], x3[11], java.lang.Object(List(x32)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (51) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (52)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (49) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (53)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (52) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (54)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (53) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (55)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (54) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (56)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (55) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (57)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (56) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (58)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



  • We consider the chain 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13]), 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]), 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) which results in the following constraint:

    (59)    (1275_0_test_Load(x1[13])=1522_0_test_Returnx1[13]=x0[12]x2[13]=x1[12]x3[13]=x2[12]346_0_length_ConstantStackPush(x0[12])=List(x0[0])∧x1[12]=x2[0]x2[12]=x3[0]x0[12]=x1[0]1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (59) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (60)    (1518_0_test_NULL(x1[13])=1522_0_test_Return0=x35820_0_length_NULL(x35, x1[13])=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x1[13], x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x1[13], x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (60) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[13])=1522_0_test_Return which results in the following new constraints:

    (61)    (1522_0_test_Return=1522_0_test_Return0=x35820_0_length_NULL(x35, NULL)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[13], x3[13], NULL)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))


    (62)    (1518_0_test_NULL(x36)=1522_0_test_Return0=x35820_0_length_NULL(x35, java.lang.Object(List(x36)))=List(x0[0])∧(∀x37,x38,x39,x40:1518_0_test_NULL(x36)=1522_0_test_Return0=x37820_0_length_NULL(x37, x36)=List(x38) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x36, x39, x40)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x36, x39, x40)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x36), x39, x40, x36)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x36)), x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x36)), x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x36))), x2[13], x3[13], java.lang.Object(List(x36)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (61) using rules (I), (II), (IV), (REWRITING) which results in the following new constraint:

    (63)    (1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[13], x3[13], NULL)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (62) using rules (VII), (REWRITING) which results in the following new constraint:

    (64)    (1518_0_test_NULL(x36)=1522_0_test_Return0=x35∧(∀x37,x38,x39,x40:1518_0_test_NULL(x36)=1522_0_test_Return0=x37820_0_length_NULL(x37, x36)=List(x38) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x36, x39, x40)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x36, x39, x40)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x36), x39, x40, x36)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x35, -1)=x44java.lang.Object(List(x36))=x45Cond_820_0_length_NULL(x44, x35, x45)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x36)), x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x36)), x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x36))), x2[13], x3[13], java.lang.Object(List(x36)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (63) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (65)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (64) using rule (V) (with possible (I) afterwards) using induction on Cond_820_0_length_NULL(x44, x35, x45)=List(x0[0]) which results in the following new constraint:

    (66)    (820_0_length_NULL(+(x47, 1), x46)=List(x0[0])∧1518_0_test_NULL(x36)=1522_0_test_Return0=x47∧(∀x37,x38,x39,x40:1518_0_test_NULL(x36)=1522_0_test_Return0=x37820_0_length_NULL(x37, x36)=List(x38) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x36, x39, x40)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x36, x39, x40)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x36), x39, x40, x36)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x47, -1)=TRUEjava.lang.Object(List(x36))=java.lang.Object(List(x46)) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x36)), x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x36)), x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x36))), x2[13], x3[13], java.lang.Object(List(x36)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (66) using rules (I), (II), (III), (VII), (IDP_CONSTANT_FOLD), (DELETE_TRIVIAL_REDUCESTO) which results in the following new constraint:

    (67)    (1518_0_test_NULL(x46)=1522_0_test_Return∧(∀x37,x38,x39,x40:1518_0_test_NULL(x46)=1522_0_test_Return0=x37820_0_length_NULL(x37, x46)=List(x38) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x46, x39, x40)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x46, x39, x40)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x46), x39, x40, x46)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧820_0_length_NULL(1, x46)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x46)), x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x46)), x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x46))), x2[13], x3[13], java.lang.Object(List(x46)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (67) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (68)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (65) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (69)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (68) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (70)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (69) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (71)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (70) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (72)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (71) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (73)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (72) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (74)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



  • We consider the chain COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15]), 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]), 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) which results in the following constraint:

    (75)    (1275_0_test_Load(x1[15])=1522_0_test_Returnx1[15]=x0[12]x2[15]=x1[12]x3[15]=x2[12]346_0_length_ConstantStackPush(x0[12])=List(x0[0])∧x1[12]=x2[0]x2[12]=x3[0]x0[12]=x1[0]1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (75) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (76)    (1518_0_test_NULL(x1[15])=1522_0_test_Return0=x49820_0_length_NULL(x49, x1[15])=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x1[15], x2[15], x3[15])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x1[15], x2[15], x3[15])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[15]), x2[15], x3[15], x1[15])∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (76) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[15])=1522_0_test_Return which results in the following new constraints:

    (77)    (1522_0_test_Return=1522_0_test_Return0=x49820_0_length_NULL(x49, NULL)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[15], x3[15])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[15], x3[15])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[15], x3[15], NULL)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))


    (78)    (1518_0_test_NULL(x50)=1522_0_test_Return0=x49820_0_length_NULL(x49, java.lang.Object(List(x50)))=List(x0[0])∧(∀x51,x52,x53,x54:1518_0_test_NULL(x50)=1522_0_test_Return0=x51820_0_length_NULL(x51, x50)=List(x52) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x50, x53, x54)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x50, x53, x54)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x50), x53, x54, x50)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x50)), x2[15], x3[15])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x50)), x2[15], x3[15])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x50))), x2[15], x3[15], java.lang.Object(List(x50)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (77) using rules (I), (II), (IV), (REWRITING) which results in the following new constraint:

    (79)    (1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[15], x3[15])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[15], x3[15])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[15], x3[15], NULL)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (78) using rules (VII), (REWRITING) which results in the following new constraint:

    (80)    (1518_0_test_NULL(x50)=1522_0_test_Return0=x49∧(∀x51,x52,x53,x54:1518_0_test_NULL(x50)=1522_0_test_Return0=x51820_0_length_NULL(x51, x50)=List(x52) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x50, x53, x54)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x50, x53, x54)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x50), x53, x54, x50)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x49, -1)=x58java.lang.Object(List(x50))=x59Cond_820_0_length_NULL(x58, x49, x59)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x50)), x2[15], x3[15])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x50)), x2[15], x3[15])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x50))), x2[15], x3[15], java.lang.Object(List(x50)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (79) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (81)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (80) using rule (V) (with possible (I) afterwards) using induction on Cond_820_0_length_NULL(x58, x49, x59)=List(x0[0]) which results in the following new constraint:

    (82)    (820_0_length_NULL(+(x61, 1), x60)=List(x0[0])∧1518_0_test_NULL(x50)=1522_0_test_Return0=x61∧(∀x51,x52,x53,x54:1518_0_test_NULL(x50)=1522_0_test_Return0=x51820_0_length_NULL(x51, x50)=List(x52) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x50, x53, x54)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x50, x53, x54)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x50), x53, x54, x50)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x61, -1)=TRUEjava.lang.Object(List(x50))=java.lang.Object(List(x60)) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x50)), x2[15], x3[15])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x50)), x2[15], x3[15])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x50))), x2[15], x3[15], java.lang.Object(List(x50)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (82) using rules (I), (II), (III), (VII), (IDP_CONSTANT_FOLD), (DELETE_TRIVIAL_REDUCESTO) which results in the following new constraint:

    (83)    (1518_0_test_NULL(x60)=1522_0_test_Return∧(∀x51,x52,x53,x54:1518_0_test_NULL(x60)=1522_0_test_Return0=x51820_0_length_NULL(x51, x60)=List(x52) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x60, x53, x54)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x60, x53, x54)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x60), x53, x54, x60)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧820_0_length_NULL(1, x60)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x60)), x2[15], x3[15])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x60)), x2[15], x3[15])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x60))), x2[15], x3[15], java.lang.Object(List(x60)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (83) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (84)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (81) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (85)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (84) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (86)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (85) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (87)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (86) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (88)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (87) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (89)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (88) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (90)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)







For Pair COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11]) the following chains were created:
  • We consider the chain 1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]), COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11]), 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) which results in the following constraint:

    (91)    (!(=(x4[10], x0[10]))=TRUEList(x0[10])=List(x0[11])∧x1[10]=x1[11]java.lang.Object(List(x3[10]))=java.lang.Object(List(x3[11]))∧x4[10]=x4[11]x2[10]=x2[11]1275_0_test_Load(x1[11])=1522_0_test_Returnx1[11]=x0[12]x2[11]=x1[12]x3[11]=x2[12]COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11])≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



    We simplified constraint (91) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (92)    (!(=(x4[10], x0[10]))=TRUE1518_0_test_NULL(x1[11])=1522_0_test_ReturnCOND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x1[11], java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x1[11], java.lang.Object(List(x3[10])), x4[10], x2[10])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[10], x3[10])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



    We simplified constraint (92) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[11])=1522_0_test_Return which results in the following new constraints:

    (93)    (1522_0_test_Return=1522_0_test_Return!(=(x4[10], x0[10]))=TRUECOND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, x2[10], x3[10])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))


    (94)    (1518_0_test_NULL(x63)=1522_0_test_Return!(=(x4[10], x0[10]))=TRUE∧(∀x64,x65,x66,x67:1518_0_test_NULL(x63)=1522_0_test_Return!(=(x64, x65))=TRUECOND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x65), x63, java.lang.Object(List(x66)), x64, x67)≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x65), x63, java.lang.Object(List(x66)), x64, x67)≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x63), x63, x67, x66)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)) ⇒ COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x63)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x63)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(java.lang.Object(List(x63))), java.lang.Object(List(x63)), x2[10], x3[10])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



    We simplified constraint (93) using rules (I), (II) which results in the following new constraint:

    (95)    (!(=(x4[10], x0[10]))=TRUECOND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, x2[10], x3[10])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



    We simplified constraint (94) using rule (VI) where we applied the induction hypothesis (∀x64,x65,x66,x67:1518_0_test_NULL(x63)=1522_0_test_Return!(=(x64, x65))=TRUECOND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x65), x63, java.lang.Object(List(x66)), x64, x67)≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x65), x63, java.lang.Object(List(x66)), x64, x67)≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x63), x63, x67, x66)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)) with σ = [x64 / x4[10], x65 / x0[10]] which results in the following new constraint:

    (96)    (COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x63, java.lang.Object(List(x66)), x4[10], x67)≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x63, java.lang.Object(List(x66)), x4[10], x67)≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x63), x63, x67, x66)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥) ⇒ COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x63)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x63)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(java.lang.Object(List(x63))), java.lang.Object(List(x63)), x2[10], x3[10])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



    We simplified constraint (95) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (97)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[bni_108 + (-1)Bound*bni_108] + [bni_108]x2[10] + [(2)bni_108]x3[10] ≥ 0∧[(-1)bso_109] + x3[10] ≥ 0)



    We simplified constraint (96) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (98)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[-2] + x67 + [2]x66 + x63 ≥ 0∧[-1] + x66 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_108 + (-1)Bound*bni_108] + [bni_108]x2[10] + [(2)bni_108]x3[10] + [(2)bni_108]x63 ≥ 0∧[(-1)bso_109] + x3[10] ≥ 0)



    We simplified constraint (97) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (99)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[bni_108 + (-1)Bound*bni_108] + [bni_108]x2[10] + [(2)bni_108]x3[10] ≥ 0∧[(-1)bso_109] + x3[10] ≥ 0)



    We simplified constraint (98) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (100)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[-2] + x67 + [2]x66 + x63 ≥ 0∧[-1] + x66 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_108 + (-1)Bound*bni_108] + [bni_108]x2[10] + [(2)bni_108]x3[10] + [(2)bni_108]x63 ≥ 0∧[(-1)bso_109] + x3[10] ≥ 0)



    We simplified constraint (99) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (101)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[bni_108 + (-1)Bound*bni_108] + [bni_108]x2[10] + [(2)bni_108]x3[10] ≥ 0∧[(-1)bso_109] + x3[10] ≥ 0)



    We simplified constraint (100) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (102)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[-2] + x67 + [2]x66 + x63 ≥ 0∧[-1] + x66 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_108 + (-1)Bound*bni_108] + [bni_108]x2[10] + [(2)bni_108]x3[10] + [(2)bni_108]x63 ≥ 0∧[(-1)bso_109] + x3[10] ≥ 0)



    We simplified constraint (101) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (103)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[bni_108] ≥ 0∧0 ≥ 0∧[(2)bni_108] ≥ 0∧0 ≥ 0∧[bni_108 + (-1)Bound*bni_108] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (102) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (104)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[-2] + x67 + [2]x66 + x63 ≥ 0∧[-1] + x66 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[bni_108] ≥ 0∧[(2)bni_108] ≥ 0∧[(-1)bni_108 + (-1)Bound*bni_108] + [(2)bni_108]x63 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[(-1)bso_109] ≥ 0)







For Pair 1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) the following chains were created:
  • We consider the chain 1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]), COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11]) which results in the following constraint:

    (105)    (!(=(x4[10], x0[10]))=TRUEList(x0[10])=List(x0[11])∧x1[10]=x1[11]java.lang.Object(List(x3[10]))=java.lang.Object(List(x3[11]))∧x4[10]=x4[11]x2[10]=x2[11]1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])∧(UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥))



    We simplified constraint (105) using rules (I), (II), (IV) which results in the following new constraint:

    (106)    (!(=(x4[10], x0[10]))=TRUE1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])∧(UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥))



    We simplified constraint (106) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (107)    (0 ≥ 0 ⇒ (UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[(-1)bni_110 + (-1)Bound*bni_110] + [bni_110]x2[10] + [(2)bni_110]x3[10] + [bni_110]x1[10] ≥ 0∧[(-1)bso_111] ≥ 0)



    We simplified constraint (107) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (108)    (0 ≥ 0 ⇒ (UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[(-1)bni_110 + (-1)Bound*bni_110] + [bni_110]x2[10] + [(2)bni_110]x3[10] + [bni_110]x1[10] ≥ 0∧[(-1)bso_111] ≥ 0)



    We simplified constraint (108) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (109)    (0 ≥ 0 ⇒ (UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[(-1)bni_110 + (-1)Bound*bni_110] + [bni_110]x2[10] + [(2)bni_110]x3[10] + [bni_110]x1[10] ≥ 0∧[(-1)bso_111] ≥ 0)



    We simplified constraint (109) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (110)    (0 ≥ 0 ⇒ (UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[bni_110] ≥ 0∧0 ≥ 0∧[(2)bni_110] ≥ 0∧[bni_110] ≥ 0∧0 ≥ 0∧[(-1)bni_110 + (-1)Bound*bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_111] ≥ 0)







For Pair 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]) the following chains were created:
  • We consider the chain COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]), 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]), 1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) which results in the following constraint:

    (111)    (346_0_length_ConstantStackPush(x1[8])=List(x0[9])∧x2[8]=x2[9]x3[8]=x3[9]x1[8]=x1[9]346_0_length_ConstantStackPush(x2[9])=List(x0[10])∧x1[9]=x1[10]x3[9]=java.lang.Object(List(x3[10]))∧x0[9]=x4[10]x2[9]=x2[10]1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (111) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (112)    (0=x71820_0_length_NULL(x71, x1[8])=List(x0[9])∧0=x72820_0_length_NULL(x72, x2[9])=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), x1[8])≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), x1[8])≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[8], java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (112) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x71, x1[8])=List(x0[9]) which results in the following new constraints:

    (113)    (List(x73)=List(x0[9])∧0=x730=x72820_0_length_NULL(x72, x2[9])=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), NULL, java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (114)    (Cond_820_0_length_NULL(>(x75, -1), x75, java.lang.Object(List(x74)))=List(x0[9])∧0=x750=x72820_0_length_NULL(x72, x2[9])=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x74)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x74)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), java.lang.Object(List(x74)), java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (113) using rules (I), (II), (III) which results in the following new constraint:

    (115)    (0=x72820_0_length_NULL(x72, x2[9])=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(0), x2[9], java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), x2[9], java.lang.Object(List(x3[10])), NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), NULL, java.lang.Object(List(x3[10])), 0, x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (114) using rule (VII) which results in the following new constraint:

    (116)    (>(x75, -1)=x81java.lang.Object(List(x74))=x82Cond_820_0_length_NULL(x81, x75, x82)=List(x0[9])∧0=x750=x72820_0_length_NULL(x72, x2[9])=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x74)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x74)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), java.lang.Object(List(x74)), java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (115) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x72, x2[9])=List(x0[10]) which results in the following new constraints:

    (117)    (List(x76)=List(x0[10])∧0=x761090_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), NULL, java.lang.Object(List(x3[10])), 0, NULL)∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (118)    (Cond_820_0_length_NULL(>(x78, -1), x78, java.lang.Object(List(x77)))=List(x0[10])∧0=x781090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x77)), java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x77)), java.lang.Object(List(x3[10])), NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x77))), NULL, java.lang.Object(List(x3[10])), 0, java.lang.Object(List(x77)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (117) using rules (I), (II), (IV) which results in the following new constraint:

    (119)    (1090_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), NULL, java.lang.Object(List(x3[10])), 0, NULL)∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (118) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (120)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x77)))=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x77)), java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x77)), java.lang.Object(List(x3[10])), NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x77))), NULL, java.lang.Object(List(x3[10])), 0, java.lang.Object(List(x77)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (119) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (121)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_112] = 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (116) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x72, x2[9])=List(x0[10]) which results in the following new constraints:

    (122)    (List(x83)=List(x0[10])∧>(x75, -1)=x81java.lang.Object(List(x74))=x82Cond_820_0_length_NULL(x81, x75, x82)=List(x0[9])∧0=x750=x831090_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x74)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x74)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x74)), java.lang.Object(List(x3[10])), x0[9], NULL)∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (123)    (Cond_820_0_length_NULL(>(x85, -1), x85, java.lang.Object(List(x84)))=List(x0[10])∧>(x75, -1)=x81java.lang.Object(List(x74))=x82Cond_820_0_length_NULL(x81, x75, x82)=List(x0[9])∧0=x750=x851090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x84)), java.lang.Object(List(x3[10])), java.lang.Object(List(x74)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x84)), java.lang.Object(List(x3[10])), java.lang.Object(List(x74)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x84))), java.lang.Object(List(x74)), java.lang.Object(List(x3[10])), x0[9], java.lang.Object(List(x84)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (122) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (124)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x74)))=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x74)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x74)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x74)), java.lang.Object(List(x3[10])), x0[9], NULL)∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (123) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (125)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x74)))=List(x0[9])∧Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x84)))=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x84)), java.lang.Object(List(x3[10])), java.lang.Object(List(x74)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x84)), java.lang.Object(List(x3[10])), java.lang.Object(List(x74)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x84))), java.lang.Object(List(x74)), java.lang.Object(List(x3[10])), x0[9], java.lang.Object(List(x84)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (120) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (126)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (124) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (127)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] + [2]x0[9] ≥ 0)



    We simplified constraint (125) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (128)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] + [2]x0[9] ≥ 0)



    We simplified constraint (121) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (129)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_112] = 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (127) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (130)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] + [2]x0[9] ≥ 0)



    We simplified constraint (126) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (131)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (128) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (132)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] + [2]x0[9] ≥ 0)



    We simplified constraint (129) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (133)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_112] = 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (130) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (134)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] + [2]x0[9] ≥ 0)



    We simplified constraint (131) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (135)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (132) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (136)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] + [2]x0[9] ≥ 0)



    We simplified constraint (133) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (137)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_112] = 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (134) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (138)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0∧[1] ≥ 0)



    We simplified constraint (135) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (139)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (136) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (140)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0∧[1] ≥ 0)



  • We consider the chain COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]), 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]), 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13]) which results in the following constraint:

    (141)    (346_0_length_ConstantStackPush(x1[8])=List(x0[9])∧x2[8]=x2[9]x3[8]=x3[9]x1[8]=x1[9]346_0_length_ConstantStackPush(x2[9])=List(x0[13])∧x1[9]=x1[13]x3[9]=x3[13]x0[9]=x0[13]x2[9]=java.lang.Object(List(x2[13])) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (141) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (142)    (0=x88820_0_length_NULL(x88, x1[8])=List(x0[9])∧1=x89820_0_length_NULL(x89, x2[13])=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], x1[8])≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], x1[8])≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), x1[8], x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (142) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x88, x1[8])=List(x0[9]) which results in the following new constraints:

    (143)    (List(x90)=List(x0[9])∧0=x901=x89820_0_length_NULL(x89, x2[13])=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), NULL, x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (144)    (Cond_820_0_length_NULL(>(x92, -1), x92, java.lang.Object(List(x91)))=List(x0[9])∧0=x921=x89820_0_length_NULL(x89, x2[13])=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x91)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x91)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), java.lang.Object(List(x91)), x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (143) using rules (I), (II), (III) which results in the following new constraint:

    (145)    (1=x89820_0_length_NULL(x89, x2[13])=List(0) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x2[13])), x3[8], NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x2[13])), x3[8], NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), NULL, x3[8], 0, java.lang.Object(List(x2[13])))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (144) using rule (VII) which results in the following new constraint:

    (146)    (>(x92, -1)=x98java.lang.Object(List(x91))=x99Cond_820_0_length_NULL(x98, x92, x99)=List(x0[9])∧0=x921=x89820_0_length_NULL(x89, x2[13])=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x91)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x91)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), java.lang.Object(List(x91)), x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (145) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x89, x2[13])=List(0) which results in the following new constraints:

    (147)    (List(x93)=List(0)∧1=x931090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(NULL)), x3[8], NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(NULL)), x3[8], NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(NULL))), NULL, x3[8], 0, java.lang.Object(List(NULL)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (148)    (Cond_820_0_length_NULL(>(x95, -1), x95, java.lang.Object(List(x94)))=List(0)∧1=x951090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x94)))), x3[8], NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x94)))), x3[8], NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x94))))), NULL, x3[8], 0, java.lang.Object(List(java.lang.Object(List(x94)))))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We solved constraint (147) using rules (I), (II), (III).We simplified constraint (148) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (149)    (Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x94)))=List(0) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x94)))), x3[8], NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x94)))), x3[8], NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x94))))), NULL, x3[8], 0, java.lang.Object(List(java.lang.Object(List(x94)))))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (146) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x89, x2[13])=List(x0[9]) which results in the following new constraints:

    (150)    (List(x100)=List(x0[9])∧>(x92, -1)=x98java.lang.Object(List(x91))=x99Cond_820_0_length_NULL(x98, x92, x99)=List(x0[9])∧0=x921=x1001090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x91)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x91)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x91)), x3[8], x0[9], java.lang.Object(List(NULL)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (151)    (Cond_820_0_length_NULL(>(x102, -1), x102, java.lang.Object(List(x101)))=List(x0[9])∧>(x92, -1)=x98java.lang.Object(List(x91))=x99Cond_820_0_length_NULL(x98, x92, x99)=List(x0[9])∧0=x921=x1021090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x101)))), x3[8], java.lang.Object(List(x91)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x101)))), x3[8], java.lang.Object(List(x91)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x101))))), java.lang.Object(List(x91)), x3[8], x0[9], java.lang.Object(List(java.lang.Object(List(x101)))))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (150) using rules (I), (II), (III), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (152)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x91)))=List(1) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x91)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x91)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x91)), x3[8], 1, java.lang.Object(List(NULL)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (151) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (153)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x91)))=List(x0[9])∧Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x101)))=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x101)))), x3[8], java.lang.Object(List(x91)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x101)))), x3[8], java.lang.Object(List(x91)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x101))))), java.lang.Object(List(x91)), x3[8], x0[9], java.lang.Object(List(java.lang.Object(List(x101)))))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (149) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (154)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (152) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (155)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (153) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (156)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] + [2]x0[9] ≥ 0)



    We simplified constraint (155) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (157)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (154) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (158)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (156) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (159)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] + [2]x0[9] ≥ 0)



    We simplified constraint (157) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (160)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (158) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (161)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (159) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (162)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] + [2]x0[9] ≥ 0)



    We simplified constraint (160) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (163)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (161) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (164)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (162) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (165)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0∧[1] ≥ 0)







For Pair COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]) the following chains were created:
  • We consider the chain 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]), COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]), 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]) which results in the following constraint:

    (166)    (<=(x4[7], x0[7])=TRUEList(x0[7])=List(x0[8])∧x1[7]=x1[8]x3[7]=x3[8]x4[7]=x4[8]x2[7]=x2[8]346_0_length_ConstantStackPush(x1[8])=List(x0[9])∧x2[8]=x2[9]x3[8]=x3[9]x1[8]=x1[9]COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (166) using rules (I), (II), (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (167)    (<=(x4[7], x0[7])=TRUE0=x105820_0_length_NULL(x105, x1[8])=List(x0[9]) ⇒ COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), x1[8], x3[7], x4[7], x2[7])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), x1[8], x3[7], x4[7], x2[7])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[7], x3[7], x1[8])∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (167) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x105, x1[8])=List(x0[9]) which results in the following new constraints:

    (168)    (List(x106)=List(x0[9])∧<=(x4[7], x0[7])=TRUE0=x106COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[7], x3[7], NULL)∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))


    (169)    (Cond_820_0_length_NULL(>(x108, -1), x108, java.lang.Object(List(x107)))=List(x0[9])∧<=(x4[7], x0[7])=TRUE0=x108COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x107)), x3[7], x4[7], x2[7])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x107)), x3[7], x4[7], x2[7])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x107))), x2[7], x3[7], java.lang.Object(List(x107)))∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (168) using rules (I), (II), (IV) which results in the following new constraint:

    (170)    (<=(x4[7], x0[7])=TRUECOND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[7], x3[7], NULL)∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (169) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (171)    (<=(x4[7], x0[7])=TRUECond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x107)))=List(x0[9]) ⇒ COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x107)), x3[7], x4[7], x2[7])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x107)), x3[7], x4[7], x2[7])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x107))), x2[7], x3[7], java.lang.Object(List(x107)))∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (170) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (172)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[bni_114 + (-1)Bound*bni_114] + [bni_114]x2[7] + [bni_114]x3[7] ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (171) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (173)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_114 + (-1)Bound*bni_114] + [bni_114]x2[7] + [bni_114]x3[7] + [(2)bni_114]x107 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (172) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (174)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[bni_114 + (-1)Bound*bni_114] + [bni_114]x2[7] + [bni_114]x3[7] ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (173) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (175)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_114 + (-1)Bound*bni_114] + [bni_114]x2[7] + [bni_114]x3[7] + [(2)bni_114]x107 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (174) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (176)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[bni_114 + (-1)Bound*bni_114] + [bni_114]x2[7] + [bni_114]x3[7] ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (175) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (177)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_114 + (-1)Bound*bni_114] + [bni_114]x2[7] + [bni_114]x3[7] + [(2)bni_114]x107 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (176) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (178)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[bni_114] ≥ 0∧0 ≥ 0∧[bni_114] ≥ 0∧0 ≥ 0∧[bni_114 + (-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (177) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (179)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[bni_114] ≥ 0∧0 ≥ 0∧[bni_114] ≥ 0∧[(2)bni_114] ≥ 0∧0 ≥ 0∧[(-1)bni_114 + (-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)







For Pair 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]) the following chains were created:
  • We consider the chain 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]), COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]) which results in the following constraint:

    (180)    (<=(x4[7], x0[7])=TRUEList(x0[7])=List(x0[8])∧x1[7]=x1[8]x3[7]=x3[8]x4[7]=x4[8]x2[7]=x2[8]1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥NonInfC∧1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])∧(UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥))



    We simplified constraint (180) using rules (I), (II), (IV) which results in the following new constraint:

    (181)    (<=(x4[7], x0[7])=TRUE1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥NonInfC∧1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])∧(UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥))



    We simplified constraint (181) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (182)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] + [bni_116]x2[7] + [bni_116]x3[7] + [bni_116]x1[7] ≥ 0∧[(-1)bso_117] ≥ 0)



    We simplified constraint (182) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (183)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] + [bni_116]x2[7] + [bni_116]x3[7] + [bni_116]x1[7] ≥ 0∧[(-1)bso_117] ≥ 0)



    We simplified constraint (183) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (184)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] + [bni_116]x2[7] + [bni_116]x3[7] + [bni_116]x1[7] ≥ 0∧[(-1)bso_117] ≥ 0)



    We simplified constraint (184) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (185)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[bni_116] ≥ 0∧0 ≥ 0∧[bni_116] ≥ 0∧[bni_116] ≥ 0∧0 ≥ 0∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_117] ≥ 0)







For Pair 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]) the following chains were created:
  • We consider the chain COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]), 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]), 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]) which results in the following constraint:

    (186)    (346_0_length_ConstantStackPush(x0[5])=List(x0[6])∧x1[5]=x2[6]x2[5]=x3[6]x0[5]=x1[6]346_0_length_ConstantStackPush(x2[6])=List(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x0[6]=x4[7]x2[6]=x2[7]1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (186) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (187)    (0=x111820_0_length_NULL(x111, x0[5])=List(x0[6])∧0=x112820_0_length_NULL(x112, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], x0[5])≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], x0[5])≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x0[5], x2[5], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (187) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x111, x0[5])=List(x0[6]) which results in the following new constraints:

    (188)    (List(x113)=List(x0[6])∧0=x1130=x112820_0_length_NULL(x112, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), NULL, x2[5], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (189)    (Cond_820_0_length_NULL(>(x115, -1), x115, java.lang.Object(List(x114)))=List(x0[6])∧0=x1150=x112820_0_length_NULL(x112, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x114)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x114)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x114)), x2[5], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (188) using rules (I), (II), (III) which results in the following new constraint:

    (190)    (0=x112820_0_length_NULL(x112, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(0), x2[6], x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), x2[6], x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), NULL, x2[5], 0, x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (189) using rule (VII) which results in the following new constraint:

    (191)    (>(x115, -1)=x121java.lang.Object(List(x114))=x122Cond_820_0_length_NULL(x121, x115, x122)=List(x0[6])∧0=x1150=x112820_0_length_NULL(x112, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x114)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x114)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x114)), x2[5], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (190) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x112, x2[6])=List(x0[7]) which results in the following new constraints:

    (192)    (List(x116)=List(x0[7])∧0=x1161020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), NULL, x2[5], 0, NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (193)    (Cond_820_0_length_NULL(>(x118, -1), x118, java.lang.Object(List(x117)))=List(x0[7])∧0=x1181020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x117)), x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x117)), x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x117))), NULL, x2[5], 0, java.lang.Object(List(x117)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (192) using rules (I), (II), (IV) which results in the following new constraint:

    (194)    (1020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), NULL, x2[5], 0, NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (193) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (195)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x117)))=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x117)), x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x117)), x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x117))), NULL, x2[5], 0, java.lang.Object(List(x117)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (194) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (196)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_118] = 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (191) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x112, x2[6])=List(x0[7]) which results in the following new constraints:

    (197)    (List(x123)=List(x0[7])∧>(x115, -1)=x121java.lang.Object(List(x114))=x122Cond_820_0_length_NULL(x121, x115, x122)=List(x0[6])∧0=x1150=x1231020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x114)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x114)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x114)), x2[5], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (198)    (Cond_820_0_length_NULL(>(x125, -1), x125, java.lang.Object(List(x124)))=List(x0[7])∧>(x115, -1)=x121java.lang.Object(List(x114))=x122Cond_820_0_length_NULL(x121, x115, x122)=List(x0[6])∧0=x1150=x1251020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x124)), x2[5], java.lang.Object(List(x114)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x124)), x2[5], java.lang.Object(List(x114)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x124))), java.lang.Object(List(x114)), x2[5], x0[6], java.lang.Object(List(x124)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (197) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (199)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x114)))=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x114)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x114)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x114)), x2[5], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (198) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (200)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x114)))=List(x0[6])∧Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x124)))=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x124)), x2[5], java.lang.Object(List(x114)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x124)), x2[5], java.lang.Object(List(x114)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x124))), java.lang.Object(List(x114)), x2[5], x0[6], java.lang.Object(List(x124)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (195) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (201)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (199) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (202)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (200) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (203)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (196) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (204)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_118] = 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (202) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (205)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (201) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (206)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (203) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (207)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (204) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (208)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_118] = 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (205) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (209)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (206) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (210)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (207) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (211)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (208) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (212)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_118] = 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (209) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (213)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (210) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (214)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (211) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (215)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



  • We consider the chain COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]), 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]), 1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) which results in the following constraint:

    (216)    (346_0_length_ConstantStackPush(x0[5])=List(x0[6])∧x1[5]=x2[6]x2[5]=x3[6]x0[5]=x1[6]346_0_length_ConstantStackPush(x2[6])=List(x0[14])∧x1[6]=java.lang.Object(List(x1[14]))∧x3[6]=x3[14]x0[6]=x4[14]x2[6]=x2[14]1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (216) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (217)    (0=x128820_0_length_NULL(x128, x2[6])=List(x0[14])∧1=x129820_0_length_NULL(x129, x1[14])=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x1[14])))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x1[14])), x2[5], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (217) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x128, x2[6])=List(x0[14]) which results in the following new constraints:

    (218)    (List(x130)=List(x0[14])∧0=x1301=x129820_0_length_NULL(x129, x1[14])=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x1[14])))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x1[14])), x2[5], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (219)    (Cond_820_0_length_NULL(>(x132, -1), x132, java.lang.Object(List(x131)))=List(x0[14])∧0=x1321=x129820_0_length_NULL(x129, x1[14])=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x131)), x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x131)), x2[5], java.lang.Object(List(x1[14])))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x131))), java.lang.Object(List(x1[14])), x2[5], x0[6], java.lang.Object(List(x131)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (218) using rules (I), (II), (IV) which results in the following new constraint:

    (220)    (1=x129820_0_length_NULL(x129, x1[14])=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x1[14])))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x1[14])), x2[5], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (219) using rule (VII) which results in the following new constraint:

    (221)    (>(x132, -1)=x138java.lang.Object(List(x131))=x139Cond_820_0_length_NULL(x138, x132, x139)=List(x0[14])∧0=x1321=x129820_0_length_NULL(x129, x1[14])=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x131)), x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x131)), x2[5], java.lang.Object(List(x1[14])))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x131))), java.lang.Object(List(x1[14])), x2[5], x0[6], java.lang.Object(List(x131)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (220) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x129, x1[14])=List(x0[6]) which results in the following new constraints:

    (222)    (List(x133)=List(x0[6])∧1=x1331020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(NULL)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(NULL)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(NULL)), x2[5], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (223)    (Cond_820_0_length_NULL(>(x135, -1), x135, java.lang.Object(List(x134)))=List(x0[6])∧1=x1351020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(java.lang.Object(List(x134)))))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(java.lang.Object(List(x134)))))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(java.lang.Object(List(x134)))), x2[5], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (222) using rules (I), (II), (III) which results in the following new constraint:

    (224)    (1020_1_MAIN_INVOKEMETHOD(List(1), NULL, x2[5], java.lang.Object(List(NULL)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(1), NULL, x2[5], java.lang.Object(List(NULL)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(NULL)), x2[5], 1, NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (223) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (225)    (Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x134)))=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(java.lang.Object(List(x134)))))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(java.lang.Object(List(x134)))))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(java.lang.Object(List(x134)))), x2[5], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (224) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (226)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_118] = 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (221) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x129, x1[14])=List(x0[6]) which results in the following new constraints:

    (227)    (List(x140)=List(x0[6])∧>(x132, -1)=x138java.lang.Object(List(x131))=x139Cond_820_0_length_NULL(x138, x132, x139)=List(x0[14])∧0=x1321=x1401020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x131)), x2[5], java.lang.Object(List(NULL)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x131)), x2[5], java.lang.Object(List(NULL)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x131))), java.lang.Object(List(NULL)), x2[5], x0[6], java.lang.Object(List(x131)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (228)    (Cond_820_0_length_NULL(>(x142, -1), x142, java.lang.Object(List(x141)))=List(x0[6])∧>(x132, -1)=x138java.lang.Object(List(x131))=x139Cond_820_0_length_NULL(x138, x132, x139)=List(x0[14])∧0=x1321=x1421020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x131)), x2[5], java.lang.Object(List(java.lang.Object(List(x141)))))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x131)), x2[5], java.lang.Object(List(java.lang.Object(List(x141)))))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x131))), java.lang.Object(List(java.lang.Object(List(x141)))), x2[5], x0[6], java.lang.Object(List(x131)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (227) using rules (I), (II), (III), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (229)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x131)))=List(x0[14]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(x131)), x2[5], java.lang.Object(List(NULL)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(x131)), x2[5], java.lang.Object(List(NULL)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x131))), java.lang.Object(List(NULL)), x2[5], 1, java.lang.Object(List(x131)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (228) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (230)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x131)))=List(x0[14])∧Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x141)))=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x131)), x2[5], java.lang.Object(List(java.lang.Object(List(x141)))))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x131)), x2[5], java.lang.Object(List(java.lang.Object(List(x141)))))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x131))), java.lang.Object(List(java.lang.Object(List(x141)))), x2[5], x0[6], java.lang.Object(List(x131)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (225) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (231)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (229) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (232)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (230) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (233)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (226) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (234)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_118] = 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (232) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (235)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (231) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (236)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (233) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (237)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (234) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (238)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_118] = 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (235) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (239)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (236) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (240)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (237) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (241)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (238) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (242)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_118] = 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (239) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (243)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (240) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (244)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (241) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (245)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)







For Pair COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]) the following chains were created:
  • We consider the chain 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]), COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]), 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]) which results in the following constraint:

    (246)    (>(x3[4], 0)=TRUEx0[4]=x0[5]x1[4]=x1[5]x2[4]=x2[5]x3[4]=x3[5]346_0_length_ConstantStackPush(x0[5])=List(x0[6])∧x1[5]=x2[6]x2[5]=x3[6]x0[5]=x1[6]COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5])≥NonInfC∧COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5])≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥))



    We simplified constraint (246) using rules (III), (IV), (REWRITING) which results in the following new constraint:

    (247)    (>(x3[4], 0)=TRUE820_0_length_NULL(0, x0[5])=List(x0[6]) ⇒ COND_923_0_MAIN_NE(TRUE, x0[5], x1[4], x2[4], x3[4])≥NonInfC∧COND_923_0_MAIN_NE(TRUE, x0[5], x1[4], x2[4], x3[4])≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[4], x2[4], x0[5])∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥))



    We simplified constraint (247) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (248)    (0 ≥ 0 ⇒ (UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧[(-1)bni_120 + (-1)Bound*bni_120] + [bni_120]x2[4] + [bni_120]x1[4] + [bni_120]x0[5] ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (248) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (249)    (0 ≥ 0 ⇒ (UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧[(-1)bni_120 + (-1)Bound*bni_120] + [bni_120]x2[4] + [bni_120]x1[4] + [bni_120]x0[5] ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (249) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (250)    (0 ≥ 0 ⇒ (UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧[(-1)bni_120 + (-1)Bound*bni_120] + [bni_120]x2[4] + [bni_120]x1[4] + [bni_120]x0[5] ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (250) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (251)    (0 ≥ 0 ⇒ (UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧0 ≥ 0∧[bni_120] ≥ 0∧[bni_120] ≥ 0∧[bni_120] ≥ 0∧[(-1)bni_120 + (-1)Bound*bni_120] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)







For Pair 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]) the following chains were created:
  • We consider the chain 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]), COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]) which results in the following constraint:

    (252)    (>(x3[4], 0)=TRUEx0[4]=x0[5]x1[4]=x1[5]x2[4]=x2[5]x3[4]=x3[5]923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥NonInfC∧923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])∧(UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥))



    We simplified constraint (252) using rule (IV) which results in the following new constraint:

    (253)    (>(x3[4], 0)=TRUE923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥NonInfC∧923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])∧(UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥))



    We simplified constraint (253) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (254)    (0 ≥ 0 ⇒ (UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧[(-1)bni_122 + (-1)Bound*bni_122] + [bni_122]x2[4] + [bni_122]x1[4] + [bni_122]x0[4] ≥ 0∧[(-1)bso_123] ≥ 0)



    We simplified constraint (254) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (255)    (0 ≥ 0 ⇒ (UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧[(-1)bni_122 + (-1)Bound*bni_122] + [bni_122]x2[4] + [bni_122]x1[4] + [bni_122]x0[4] ≥ 0∧[(-1)bso_123] ≥ 0)



    We simplified constraint (255) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (256)    (0 ≥ 0 ⇒ (UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧[(-1)bni_122 + (-1)Bound*bni_122] + [bni_122]x2[4] + [bni_122]x1[4] + [bni_122]x0[4] ≥ 0∧[(-1)bso_123] ≥ 0)



    We simplified constraint (256) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (257)    (0 ≥ 0 ⇒ (UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧0 ≥ 0∧[bni_122] ≥ 0∧[bni_122] ≥ 0∧[bni_122] ≥ 0∧[(-1)bni_122 + (-1)Bound*bni_122] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_123] ≥ 0)







For Pair 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]) the following chains were created:
  • We consider the chain 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]), 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]), 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]) which results in the following constraint:

    (258)    (346_0_length_ConstantStackPush(x3[2])=List(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]x3[2]=x3[3]x1[3]=x0[4]x2[3]=x1[4]x3[3]=x2[4]fresh2[3]=x3[4]896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3])≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3])≥923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (258) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (259)    (0=x145820_0_length_NULL(x145, x3[2])=List(x0[3]) ⇒ 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], x3[2])≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], x3[2])≥923_0_MAIN_NE(x1[2], x2[2], x3[2], fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (259) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x145, x3[2])=List(x0[3]) which results in the following new constraints:

    (260)    (List(x146)=List(x0[3])∧0=x146896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], NULL)≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], NULL)≥923_0_MAIN_NE(x1[2], x2[2], NULL, fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))


    (261)    (Cond_820_0_length_NULL(>(x148, -1), x148, java.lang.Object(List(x147)))=List(x0[3])∧0=x148896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x147)))≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x147)))≥923_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(x147)), fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (260) using rules (I), (II), (III) which results in the following new constraint:

    (262)    (896_1_MAIN_INVOKEMETHOD(List(0), x1[2], x2[2], NULL)≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(0), x1[2], x2[2], NULL)≥923_0_MAIN_NE(x1[2], x2[2], NULL, fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (261) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (263)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x147)))=List(x0[3]) ⇒ 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x147)))≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x147)))≥923_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(x147)), fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (262) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (264)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_124] = 0∧[(-1)bso_125] ≥ 0)



    We simplified constraint (263) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (265)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_125] ≥ 0)



    We simplified constraint (264) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (266)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_124] = 0∧[(-1)bso_125] ≥ 0)



    We simplified constraint (265) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (267)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_125] ≥ 0)



    We simplified constraint (266) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (268)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_124] = 0∧[(-1)bso_125] ≥ 0)



    We simplified constraint (267) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (269)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_125] ≥ 0)



    We simplified constraint (268) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (270)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_124] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_125] ≥ 0)



    We simplified constraint (269) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (271)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_125] ≥ 0)







For Pair 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]) the following chains were created:
  • We consider the chain COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]), 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]), 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]) which results in the following constraint:

    (272)    (346_0_length_ConstantStackPush(x3[1])=List(x0[2])∧x2[1]=x1[2]x1[1]=x3[2]x3[1]=x2[2]346_0_length_ConstantStackPush(x3[2])=List(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]x3[2]=x3[3]845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2])≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2])≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (272) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (273)    (0=x151820_0_length_NULL(x151, x3[1])=List(x0[2])∧0=x152820_0_length_NULL(x152, x3[2])=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], x3[1])≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], x3[1])≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x2[1], x3[1], x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (273) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x151, x3[1])=List(x0[2]) which results in the following new constraints:

    (274)    (List(x153)=List(x0[2])∧0=x1530=x152820_0_length_NULL(x152, x3[2])=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x2[1], NULL, x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))


    (275)    (Cond_820_0_length_NULL(>(x155, -1), x155, java.lang.Object(List(x154)))=List(x0[2])∧0=x1550=x152820_0_length_NULL(x152, x3[2])=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x154)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x154)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x2[1], java.lang.Object(List(x154)), x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (274) using rules (I), (II), (III) which results in the following new constraint:

    (276)    (0=x152820_0_length_NULL(x152, x3[2])=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(0), x2[1], x3[2], NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], x3[2], NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x2[1], NULL, x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (275) using rule (VII) which results in the following new constraint:

    (277)    (>(x155, -1)=x161java.lang.Object(List(x154))=x162Cond_820_0_length_NULL(x161, x155, x162)=List(x0[2])∧0=x1550=x152820_0_length_NULL(x152, x3[2])=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x154)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x154)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x2[1], java.lang.Object(List(x154)), x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (276) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x152, x3[2])=List(x0[3]) which results in the following new constraints:

    (278)    (List(x156)=List(x0[3])∧0=x156845_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[1], NULL, NULL)∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))


    (279)    (Cond_820_0_length_NULL(>(x158, -1), x158, java.lang.Object(List(x157)))=List(x0[3])∧0=x158845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x157)), NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x157)), NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x157))), x2[1], NULL, java.lang.Object(List(x157)))∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (278) using rules (I), (II), (IV) which results in the following new constraint:

    (280)    (845_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[1], NULL, NULL)∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (279) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (281)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x157)))=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x157)), NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x157)), NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x157))), x2[1], NULL, java.lang.Object(List(x157)))∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (280) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (282)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_126] = 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (277) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x152, x3[2])=List(x0[3]) which results in the following new constraints:

    (283)    (List(x163)=List(x0[3])∧>(x155, -1)=x161java.lang.Object(List(x154))=x162Cond_820_0_length_NULL(x161, x155, x162)=List(x0[2])∧0=x1550=x163845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x154)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x154)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[1], java.lang.Object(List(x154)), NULL)∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))


    (284)    (Cond_820_0_length_NULL(>(x165, -1), x165, java.lang.Object(List(x164)))=List(x0[3])∧>(x155, -1)=x161java.lang.Object(List(x154))=x162Cond_820_0_length_NULL(x161, x155, x162)=List(x0[2])∧0=x1550=x165845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x164)), java.lang.Object(List(x154)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x164)), java.lang.Object(List(x154)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x164))), x2[1], java.lang.Object(List(x154)), java.lang.Object(List(x164)))∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (283) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (285)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x154)))=List(x0[2]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x154)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x154)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[1], java.lang.Object(List(x154)), NULL)∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (284) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (286)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x154)))=List(x0[2])∧Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x164)))=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x164)), java.lang.Object(List(x154)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x164)), java.lang.Object(List(x154)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x164))), x2[1], java.lang.Object(List(x154)), java.lang.Object(List(x164)))∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (281) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (287)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (285) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (288)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_127] + [2]x0[2] ≥ 0)



    We simplified constraint (286) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (289)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_127] + [2]x0[2] ≥ 0)



    We simplified constraint (282) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (290)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_126] = 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (288) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (291)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_127] + [2]x0[2] ≥ 0)



    We simplified constraint (287) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (292)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (289) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (293)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_127] + [2]x0[2] ≥ 0)



    We simplified constraint (290) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (294)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_126] = 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (291) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (295)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_127] + [2]x0[2] ≥ 0)



    We simplified constraint (292) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (296)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (293) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (297)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_127] + [2]x0[2] ≥ 0)



    We simplified constraint (294) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (298)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_126] = 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (295) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (299)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0∧[1] ≥ 0)



    We simplified constraint (296) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (300)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (297) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (301)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0∧[1] ≥ 0)







For Pair COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]) the following chains were created:
  • We consider the chain 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]), COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]), 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]) which results in the following constraint:

    (302)    (>(x0[0], 0)=TRUEList(x0[0])=List(x0[1])∧x2[0]=x2[1]x3[0]=x3[1]x1[0]=x1[1]346_0_length_ConstantStackPush(x3[1])=List(x0[2])∧x2[1]=x1[2]x1[1]=x3[2]x3[1]=x2[2]COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1])≥NonInfC∧COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1])≥845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])∧(UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥))



    We simplified constraint (302) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (303)    (>(x0[0], 0)=TRUE820_0_length_NULL(0, x3[1])=List(x0[2]) ⇒ COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[0]), x2[0], x3[1], x1[0])≥NonInfC∧COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[0]), x2[0], x3[1], x1[0])≥845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[0], x1[0], x3[1])∧(UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥))



    We simplified constraint (303) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (304)    (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)bni_128 + (-1)Bound*bni_128] + [bni_128]x1[0] + [bni_128]x3[1] + [bni_128]x2[0] ≥ 0∧[(-1)bso_129] ≥ 0)



    We simplified constraint (304) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (305)    (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)bni_128 + (-1)Bound*bni_128] + [bni_128]x1[0] + [bni_128]x3[1] + [bni_128]x2[0] ≥ 0∧[(-1)bso_129] ≥ 0)



    We simplified constraint (305) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (306)    (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)bni_128 + (-1)Bound*bni_128] + [bni_128]x1[0] + [bni_128]x3[1] + [bni_128]x2[0] ≥ 0∧[(-1)bso_129] ≥ 0)



    We simplified constraint (306) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (307)    (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[bni_128] ≥ 0∧[bni_128] ≥ 0∧[bni_128] ≥ 0∧0 ≥ 0∧[(-1)bni_128 + (-1)Bound*bni_128] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_129] ≥ 0)







For Pair 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) the following chains were created:
  • We consider the chain 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]), COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]) which results in the following constraint:

    (308)    (>(x0[0], 0)=TRUEList(x0[0])=List(x0[1])∧x2[0]=x2[1]x3[0]=x3[1]x1[0]=x1[1]346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])∧(UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥))



    We simplified constraint (308) using rules (I), (II), (IV) which results in the following new constraint:

    (309)    (>(x0[0], 0)=TRUE346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])∧(UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥))



    We simplified constraint (309) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (310)    (0 ≥ 0 ⇒ (UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[(-1)bni_130 + (-1)Bound*bni_130] + [bni_130]x1[0] + [bni_130]x3[0] + [bni_130]x2[0] ≥ 0∧[(-1)bso_131] ≥ 0)



    We simplified constraint (310) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (311)    (0 ≥ 0 ⇒ (UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[(-1)bni_130 + (-1)Bound*bni_130] + [bni_130]x1[0] + [bni_130]x3[0] + [bni_130]x2[0] ≥ 0∧[(-1)bso_131] ≥ 0)



    We simplified constraint (311) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (312)    (0 ≥ 0 ⇒ (UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[(-1)bni_130 + (-1)Bound*bni_130] + [bni_130]x1[0] + [bni_130]x3[0] + [bni_130]x2[0] ≥ 0∧[(-1)bso_131] ≥ 0)



    We simplified constraint (312) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (313)    (0 ≥ 0 ⇒ (UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[bni_130] ≥ 0∧[bni_130] ≥ 0∧[bni_130] ≥ 0∧0 ≥ 0∧[(-1)bni_130 + (-1)Bound*bni_130] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_131] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])
    • (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[bni_100] ≥ 0∧0 ≥ 0∧[bni_100] ≥ 0∧0 ≥ 0∧[(3)bni_100 + (-1)Bound*bni_100] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_101] ≥ 0)
    • ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[-2] + x4 + x3 + [2]x0 ≥ 0∧[-1] + x0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[bni_100] ≥ 0∧[bni_100] ≥ 0∧[(-1)bni_100 + (-1)Bound*bni_100] + [(4)bni_100]x0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_101] + [2]x0 ≥ 0)

  • 1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧[bni_102] ≥ 0∧0 ≥ 0∧[bni_102] ≥ 0∧[(2)bni_102] ≥ 0∧0 ≥ 0∧[(-1)bni_102 + (-1)Bound*bni_102] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_103] ≥ 0)

  • 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
    • ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_104] = 0∧0 ≥ 0∧[2 + (-1)bso_105] ≥ 0)
    • ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] + [2]x2[13] + x13 + x9 ≥ 0∧[-1] + x2[13] ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] + x2[13] ≥ 0)
    • ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0∧[1] ≥ 0)

  • 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
    • ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
    • ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
    • ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
    • ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
    • ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
    • ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

  • COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
    • (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[bni_108] ≥ 0∧0 ≥ 0∧[(2)bni_108] ≥ 0∧0 ≥ 0∧[bni_108 + (-1)Bound*bni_108] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)
    • ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[-2] + x67 + [2]x66 + x63 ≥ 0∧[-1] + x66 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[bni_108] ≥ 0∧[(2)bni_108] ≥ 0∧[(-1)bni_108 + (-1)Bound*bni_108] + [(2)bni_108]x63 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[(-1)bso_109] ≥ 0)

  • 1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[bni_110] ≥ 0∧0 ≥ 0∧[(2)bni_110] ≥ 0∧[bni_110] ≥ 0∧0 ≥ 0∧[(-1)bni_110 + (-1)Bound*bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_111] ≥ 0)

  • 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_112] = 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0∧[1] ≥ 0)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0∧[1] ≥ 0)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0∧[1] ≥ 0)

  • COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
    • (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[bni_114] ≥ 0∧0 ≥ 0∧[bni_114] ≥ 0∧0 ≥ 0∧[bni_114 + (-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[bni_114] ≥ 0∧0 ≥ 0∧[bni_114] ≥ 0∧[(2)bni_114] ≥ 0∧0 ≥ 0∧[(-1)bni_114 + (-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)

  • 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[bni_116] ≥ 0∧0 ≥ 0∧[bni_116] ≥ 0∧[bni_116] ≥ 0∧0 ≥ 0∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_117] ≥ 0)

  • 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_118] = 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_118] = 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)

  • COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
    • (0 ≥ 0 ⇒ (UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧0 ≥ 0∧[bni_120] ≥ 0∧[bni_120] ≥ 0∧[bni_120] ≥ 0∧[(-1)bni_120 + (-1)Bound*bni_120] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)

  • 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧0 ≥ 0∧[bni_122] ≥ 0∧[bni_122] ≥ 0∧[bni_122] ≥ 0∧[(-1)bni_122 + (-1)Bound*bni_122] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_123] ≥ 0)

  • 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
    • ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_124] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_125] ≥ 0)
    • ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_125] ≥ 0)

  • 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
    • ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_126] = 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0)
    • ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0)
    • ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0∧[1] ≥ 0)
    • ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0∧[1] ≥ 0)

  • COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
    • (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[bni_128] ≥ 0∧[bni_128] ≥ 0∧[bni_128] ≥ 0∧0 ≥ 0∧[(-1)bni_128 + (-1)Bound*bni_128] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_129] ≥ 0)

  • 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[bni_130] ≥ 0∧[bni_130] ≥ 0∧[bni_130] ≥ 0∧0 ≥ 0∧[(-1)bni_130 + (-1)Bound*bni_130] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_131] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers with natural coefficients for non-tuple symbols [NONINF][POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(346_0_length_ConstantStackPush(x1)) = 0   
POL(820_0_length_NULL(x1, x2)) = [2]x1   
POL(0) = 0   
POL(1275_0_test_Load(x1)) = 0   
POL(1518_0_test_NULL(x1)) = 0   
POL(NULL) = [2]   
POL(List(x1)) = [2]x1   
POL(java.lang.Object(x1)) = x1   
POL(Cond_820_0_length_NULL(x1, x2, x3)) = x2   
POL(>(x1, x2)) = 0   
POL(-1) = 0   
POL(+(x1, x2)) = 0   
POL(1) = 0   
POL(1522_0_test_Return) = 0   
POL(COND_1050_1_MAIN_INVOKEMETHOD1(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + x4 + x3   
POL(1275_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + x3 + x2 + [-1]x1   
POL(1050_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x5 + x3 + x2   
POL(1113_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x5 + x3 + x2   
POL(346_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + x3 + x2   
POL(COND_1113_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + x4 + x3 + [-1]x1   
POL(!(x1)) = 0   
POL(=(x1, x2)) = 0   
POL(1090_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + x3 + x2 + x1   
POL(COND_1050_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + x4 + x3   
POL(<=(x1, x2)) = 0   
POL(1020_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + x3 + x2   
POL(COND_923_0_MAIN_NE(x1, x2, x3, x4, x5)) = [-1] + x4 + x3 + x2   
POL(923_0_MAIN_NE(x1, x2, x3, x4)) = [-1] + x3 + x2 + x1   
POL(896_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + x3 + x2   
POL(845_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + x3 + x2 + x1   
POL(COND_346_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x5 + x4 + x3   

The following pairs are in P>:

COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])

The following pairs are in Pbound:

COND_1050_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[15]), x1[15], x2[15], x3[15])
1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])
COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])
COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])

The following pairs are in P:

1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])
1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])
896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])

At least the following rules have been oriented under context sensitive arithmetic replacement:

1518_0_test_NULL(x0)11275_0_test_Load(x0)1
1518_0_test_NULL(NULL)11522_0_test_Return1
1518_0_test_NULL(java.lang.Object(List(x0)))11518_0_test_NULL(x0)1
346_0_length_ConstantStackPush(x0)1820_0_length_NULL(0, x0)1
820_0_length_NULL(x0, NULL)1List(x0)1
820_0_length_NULL(x1, java.lang.Object(List(x0)))1Cond_820_0_length_NULL(>(x1, -1), x1, java.lang.Object(List(x0)))1
Cond_820_0_length_NULL(TRUE, x1, java.lang.Object(List(x0)))1820_0_length_NULL(+(x1, 1), x0)1
FALSE1!(TRUE)1
TRUE1!(FALSE)1

(44) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
346_0_length_ConstantStackPush(x0) → 820_0_length_NULL(0, x0)
1275_0_test_Load(x0) → 1518_0_test_NULL(x0)
820_0_length_NULL(x0, NULL) → List(x0)
820_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_820_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_820_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 820_0_length_NULL(x1 + 1, x0)
1518_0_test_NULL(NULL) → 1522_0_test_Return
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)

The integer pair graph contains the following rules and edges:
(14): 1050_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1050_1_MAIN_INVOKEMETHOD1(x4[14] > x0[14], List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
(13): 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
(12): 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
(11): COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
(10): 1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(x4[10] = x0[10]), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
(9): 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
(8): COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
(7): 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(x4[7] <= x0[7], List(x0[7]), x1[7], x3[7], x4[7], x2[7])
(6): 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
(5): COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
(4): 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(x3[4] > 0, x0[4], x1[4], x2[4], x3[4])
(3): 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
(2): 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
(1): COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
(0): 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(x0[0] > 0, List(x0[0]), x2[0], x3[0], x1[0])

(12) -> (0), if (346_0_length_ConstantStackPush(x0[12]) →* List(x0[0])∧x1[12]* x2[0]x2[12]* x3[0]x0[12]* x1[0])


(0) -> (1), if (x0[0] > 0List(x0[0]) →* List(x0[1])∧x2[0]* x2[1]x3[0]* x3[1]x1[0]* x1[1])


(1) -> (2), if (346_0_length_ConstantStackPush(x3[1]) →* List(x0[2])∧x2[1]* x1[2]x1[1]* x3[2]x3[1]* x2[2])


(2) -> (3), if (346_0_length_ConstantStackPush(x3[2]) →* List(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x3[2]* x3[3])


(3) -> (4), if (x1[3]* x0[4]x2[3]* x1[4]x3[3]* x2[4]fresh2[3]* x3[4])


(4) -> (5), if (x3[4] > 0x0[4]* x0[5]x1[4]* x1[5]x2[4]* x2[5]x3[4]* x3[5])


(5) -> (6), if (346_0_length_ConstantStackPush(x0[5]) →* List(x0[6])∧x1[5]* x2[6]x2[5]* x3[6]x0[5]* x1[6])


(6) -> (7), if (346_0_length_ConstantStackPush(x2[6]) →* List(x0[7])∧x1[6]* x1[7]x3[6]* x3[7]x0[6]* x4[7]x2[6]* x2[7])


(7) -> (8), if (x4[7] <= x0[7]List(x0[7]) →* List(x0[8])∧x1[7]* x1[8]x3[7]* x3[8]x4[7]* x4[8]x2[7]* x2[8])


(8) -> (9), if (346_0_length_ConstantStackPush(x1[8]) →* List(x0[9])∧x2[8]* x2[9]x3[8]* x3[9]x1[8]* x1[9])


(9) -> (10), if (346_0_length_ConstantStackPush(x2[9]) →* List(x0[10])∧x1[9]* x1[10]x3[9]* java.lang.Object(List(x3[10]))∧x0[9]* x4[10]x2[9]* x2[10])


(10) -> (11), if (!(x4[10] = x0[10]) ∧List(x0[10]) →* List(x0[11])∧x1[10]* x1[11]java.lang.Object(List(x3[10])) →* java.lang.Object(List(x3[11]))∧x4[10]* x4[11]x2[10]* x2[11])


(11) -> (12), if (1275_0_test_Load(x1[11]) →* 1522_0_test_Returnx1[11]* x0[12]x2[11]* x1[12]x3[11]* x2[12])


(13) -> (12), if (1275_0_test_Load(x1[13]) →* 1522_0_test_Returnx1[13]* x0[12]x2[13]* x1[12]x3[13]* x2[12])


(9) -> (13), if (346_0_length_ConstantStackPush(x2[9]) →* List(x0[13])∧x1[9]* x1[13]x3[9]* x3[13]x0[9]* x0[13]x2[9]* java.lang.Object(List(x2[13])))


(6) -> (14), if (346_0_length_ConstantStackPush(x2[6]) →* List(x0[14])∧x1[6]* java.lang.Object(List(x1[14]))∧x3[6]* x3[14]x0[6]* x4[14]x2[6]* x2[14])



The set Q consists of the following terms:
346_0_length_ConstantStackPush(x0)
937_0_length_ConstantStackPush(java.lang.Object(List(x0)))
820_0_length_NULL(x0, NULL)
820_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_820_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))
1275_0_test_Load(x0)
1518_0_test_NULL(NULL)
1518_0_test_NULL(java.lang.Object(List(x0)))

(45) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node.

(46) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
346_0_length_ConstantStackPush(x0) → 820_0_length_NULL(0, x0)
1275_0_test_Load(x0) → 1518_0_test_NULL(x0)
820_0_length_NULL(x0, NULL) → List(x0)
820_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_820_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_820_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 820_0_length_NULL(x1 + 1, x0)
1518_0_test_NULL(NULL) → 1522_0_test_Return
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)

The integer pair graph contains the following rules and edges:
(11): COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
(10): 1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(x4[10] = x0[10]), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
(9): 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
(8): COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
(7): 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(x4[7] <= x0[7], List(x0[7]), x1[7], x3[7], x4[7], x2[7])
(6): 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
(5): COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
(4): 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(x3[4] > 0, x0[4], x1[4], x2[4], x3[4])
(3): 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
(2): 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
(1): COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
(0): 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(x0[0] > 0, List(x0[0]), x2[0], x3[0], x1[0])
(12): 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
(13): 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])

(12) -> (0), if (346_0_length_ConstantStackPush(x0[12]) →* List(x0[0])∧x1[12]* x2[0]x2[12]* x3[0]x0[12]* x1[0])


(0) -> (1), if (x0[0] > 0List(x0[0]) →* List(x0[1])∧x2[0]* x2[1]x3[0]* x3[1]x1[0]* x1[1])


(1) -> (2), if (346_0_length_ConstantStackPush(x3[1]) →* List(x0[2])∧x2[1]* x1[2]x1[1]* x3[2]x3[1]* x2[2])


(2) -> (3), if (346_0_length_ConstantStackPush(x3[2]) →* List(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x3[2]* x3[3])


(3) -> (4), if (x1[3]* x0[4]x2[3]* x1[4]x3[3]* x2[4]fresh2[3]* x3[4])


(4) -> (5), if (x3[4] > 0x0[4]* x0[5]x1[4]* x1[5]x2[4]* x2[5]x3[4]* x3[5])


(5) -> (6), if (346_0_length_ConstantStackPush(x0[5]) →* List(x0[6])∧x1[5]* x2[6]x2[5]* x3[6]x0[5]* x1[6])


(6) -> (7), if (346_0_length_ConstantStackPush(x2[6]) →* List(x0[7])∧x1[6]* x1[7]x3[6]* x3[7]x0[6]* x4[7]x2[6]* x2[7])


(7) -> (8), if (x4[7] <= x0[7]List(x0[7]) →* List(x0[8])∧x1[7]* x1[8]x3[7]* x3[8]x4[7]* x4[8]x2[7]* x2[8])


(8) -> (9), if (346_0_length_ConstantStackPush(x1[8]) →* List(x0[9])∧x2[8]* x2[9]x3[8]* x3[9]x1[8]* x1[9])


(9) -> (10), if (346_0_length_ConstantStackPush(x2[9]) →* List(x0[10])∧x1[9]* x1[10]x3[9]* java.lang.Object(List(x3[10]))∧x0[9]* x4[10]x2[9]* x2[10])


(10) -> (11), if (!(x4[10] = x0[10]) ∧List(x0[10]) →* List(x0[11])∧x1[10]* x1[11]java.lang.Object(List(x3[10])) →* java.lang.Object(List(x3[11]))∧x4[10]* x4[11]x2[10]* x2[11])


(11) -> (12), if (1275_0_test_Load(x1[11]) →* 1522_0_test_Returnx1[11]* x0[12]x2[11]* x1[12]x3[11]* x2[12])


(13) -> (12), if (1275_0_test_Load(x1[13]) →* 1522_0_test_Returnx1[13]* x0[12]x2[13]* x1[12]x3[13]* x2[12])


(9) -> (13), if (346_0_length_ConstantStackPush(x2[9]) →* List(x0[13])∧x1[9]* x1[13]x3[9]* x3[13]x0[9]* x0[13]x2[9]* java.lang.Object(List(x2[13])))



The set Q consists of the following terms:
346_0_length_ConstantStackPush(x0)
937_0_length_ConstantStackPush(java.lang.Object(List(x0)))
820_0_length_NULL(x0, NULL)
820_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_820_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))
1275_0_test_Load(x0)
1518_0_test_NULL(NULL)
1518_0_test_NULL(java.lang.Object(List(x0)))

(47) IDPNonInfProof (SOUND transformation)

Used the following options for this NonInfProof:
IDPGPoloSolver: Range: [(-1,2)] IsNat: true Interpretation Shape Heuristic: aprove.DPFramework.IDPProblem.Processors.nonInf.poly.IdpDefaultShapeHeuristic@651d26b3 Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 1 Max Right Steps: 1

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11]) the following chains were created:
  • We consider the chain 1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]), COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11]), 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) which results in the following constraint:

    (1)    (!(=(x4[10], x0[10]))=TRUEList(x0[10])=List(x0[11])∧x1[10]=x1[11]java.lang.Object(List(x3[10]))=java.lang.Object(List(x3[11]))∧x4[10]=x4[11]x2[10]=x2[11]1275_0_test_Load(x1[11])=1522_0_test_Returnx1[11]=x0[12]x2[11]=x1[12]x3[11]=x2[12]COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11])≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



    We simplified constraint (1) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (2)    (!(=(x4[10], x0[10]))=TRUE1518_0_test_NULL(x1[11])=1522_0_test_ReturnCOND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x1[11], java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x1[11], java.lang.Object(List(x3[10])), x4[10], x2[10])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[10], x3[10])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



    We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[11])=1522_0_test_Return which results in the following new constraints:

    (3)    (1522_0_test_Return=1522_0_test_Return!(=(x4[10], x0[10]))=TRUECOND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, x2[10], x3[10])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))


    (4)    (1518_0_test_NULL(x0)=1522_0_test_Return!(=(x4[10], x0[10]))=TRUE∧(∀x1,x2,x3,x4:1518_0_test_NULL(x0)=1522_0_test_Return!(=(x1, x2))=TRUECOND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x2), x0, java.lang.Object(List(x3)), x1, x4)≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x2), x0, java.lang.Object(List(x3)), x1, x4)≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x0), x0, x4, x3)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)) ⇒ COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x0)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x0)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(java.lang.Object(List(x0))), java.lang.Object(List(x0)), x2[10], x3[10])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



    We simplified constraint (3) using rules (I), (II) which results in the following new constraint:

    (5)    (!(=(x4[10], x0[10]))=TRUECOND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, x2[10], x3[10])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



    We simplified constraint (4) using rule (VI) where we applied the induction hypothesis (∀x1,x2,x3,x4:1518_0_test_NULL(x0)=1522_0_test_Return!(=(x1, x2))=TRUECOND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x2), x0, java.lang.Object(List(x3)), x1, x4)≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x2), x0, java.lang.Object(List(x3)), x1, x4)≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x0), x0, x4, x3)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)) with σ = [x1 / x4[10], x2 / x0[10]] which results in the following new constraint:

    (6)    (COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x0, java.lang.Object(List(x3)), x4[10], x4)≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x0, java.lang.Object(List(x3)), x4[10], x4)≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x0), x0, x4, x3)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥) ⇒ COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x0)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x0)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(java.lang.Object(List(x0))), java.lang.Object(List(x0)), x2[10], x3[10])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



    We simplified constraint (5) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (7)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_93 + (-1)Bound*bni_93] + [(-1)bni_93]x2[10] ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (6) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (8)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[-2] + [-1]x4 + [-1]x0 ≥ 0∧[-1] + [-2]x0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-2)bni_93 + (-1)Bound*bni_93] + [(-1)bni_93]x2[10] ≥ 0∧[-2 + (-1)bso_94] ≥ 0)



    We simplified constraint (7) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (9)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_93 + (-1)Bound*bni_93] + [(-1)bni_93]x2[10] ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (8) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (10)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[-2] + [-1]x4 + [-1]x0 ≥ 0∧[-1] + [-2]x0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-2)bni_93 + (-1)Bound*bni_93] + [(-1)bni_93]x2[10] ≥ 0∧[-2 + (-1)bso_94] ≥ 0)



    We simplified constraint (9) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (11)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_93 + (-1)Bound*bni_93] + [(-1)bni_93]x2[10] ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (10) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (12)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[-2] + [-1]x4 + [-1]x0 ≥ 0∧[-1] + [-2]x0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-2)bni_93 + (-1)Bound*bni_93] + [(-1)bni_93]x2[10] ≥ 0∧[-2 + (-1)bso_94] ≥ 0)



    We simplified constraint (11) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (13)    (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_93] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_93 + (-1)Bound*bni_93] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (12) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (14)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[-2] + [-1]x4 + [-1]x0 ≥ 0∧[-1] + [-2]x0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_93] ≥ 0∧0 ≥ 0∧[(-2)bni_93 + (-1)Bound*bni_93] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[-2 + (-1)bso_94] ≥ 0)



    We solved constraint (14) using rule (IDP_SMT_SPLIT).




For Pair 1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) the following chains were created:
  • We consider the chain 1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]), COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11]) which results in the following constraint:

    (15)    (!(=(x4[10], x0[10]))=TRUEList(x0[10])=List(x0[11])∧x1[10]=x1[11]java.lang.Object(List(x3[10]))=java.lang.Object(List(x3[11]))∧x4[10]=x4[11]x2[10]=x2[11]1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])∧(UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥))



    We simplified constraint (15) using rules (I), (II), (IV) which results in the following new constraint:

    (16)    (!(=(x4[10], x0[10]))=TRUE1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])∧(UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥))



    We simplified constraint (16) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (17)    (0 ≥ 0 ⇒ (UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[(-1)Bound*bni_95] + [(-1)bni_95]x2[10] + [(-1)bni_95]x1[10] ≥ 0∧[1 + (-1)bso_96] ≥ 0)



    We simplified constraint (17) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (18)    (0 ≥ 0 ⇒ (UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[(-1)Bound*bni_95] + [(-1)bni_95]x2[10] + [(-1)bni_95]x1[10] ≥ 0∧[1 + (-1)bso_96] ≥ 0)



    We simplified constraint (18) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (19)    (0 ≥ 0 ⇒ (UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[(-1)Bound*bni_95] + [(-1)bni_95]x2[10] + [(-1)bni_95]x1[10] ≥ 0∧[1 + (-1)bso_96] ≥ 0)



    We simplified constraint (19) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (20)    (0 ≥ 0 ⇒ (UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[(-1)bni_95] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_95] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_95] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_96] ≥ 0)







For Pair 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]) the following chains were created:
  • We consider the chain COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]), 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]), 1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) which results in the following constraint:

    (21)    (346_0_length_ConstantStackPush(x1[8])=List(x0[9])∧x2[8]=x2[9]x3[8]=x3[9]x1[8]=x1[9]346_0_length_ConstantStackPush(x2[9])=List(x0[10])∧x1[9]=x1[10]x3[9]=java.lang.Object(List(x3[10]))∧x0[9]=x4[10]x2[9]=x2[10]1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (21) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (22)    (0=x8820_0_length_NULL(x8, x1[8])=List(x0[9])∧0=x9820_0_length_NULL(x9, x2[9])=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), x1[8])≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), x1[8])≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[8], java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (22) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x8, x1[8])=List(x0[9]) which results in the following new constraints:

    (23)    (List(x10)=List(x0[9])∧0=x100=x9820_0_length_NULL(x9, x2[9])=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), NULL, java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (24)    (Cond_820_0_length_NULL(>(x12, -1), x12, java.lang.Object(List(x11)))=List(x0[9])∧0=x120=x9820_0_length_NULL(x9, x2[9])=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x11)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x11)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), java.lang.Object(List(x11)), java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (23) using rules (I), (II), (III) which results in the following new constraint:

    (25)    (0=x9820_0_length_NULL(x9, x2[9])=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(0), x2[9], java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), x2[9], java.lang.Object(List(x3[10])), NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), NULL, java.lang.Object(List(x3[10])), 0, x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (24) using rule (VII) which results in the following new constraint:

    (26)    (>(x12, -1)=x18java.lang.Object(List(x11))=x19Cond_820_0_length_NULL(x18, x12, x19)=List(x0[9])∧0=x120=x9820_0_length_NULL(x9, x2[9])=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x11)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x11)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), java.lang.Object(List(x11)), java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (25) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x9, x2[9])=List(x0[10]) which results in the following new constraints:

    (27)    (List(x13)=List(x0[10])∧0=x131090_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), NULL, java.lang.Object(List(x3[10])), 0, NULL)∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (28)    (Cond_820_0_length_NULL(>(x15, -1), x15, java.lang.Object(List(x14)))=List(x0[10])∧0=x151090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x14)), java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x14)), java.lang.Object(List(x3[10])), NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x14))), NULL, java.lang.Object(List(x3[10])), 0, java.lang.Object(List(x14)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (27) using rules (I), (II), (IV) which results in the following new constraint:

    (29)    (1090_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), NULL, java.lang.Object(List(x3[10])), 0, NULL)∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (28) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (30)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x14)))=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x14)), java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x14)), java.lang.Object(List(x3[10])), NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x14))), NULL, java.lang.Object(List(x3[10])), 0, java.lang.Object(List(x14)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (29) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (31)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_97] = 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (26) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x9, x2[9])=List(x0[10]) which results in the following new constraints:

    (32)    (List(x20)=List(x0[10])∧>(x12, -1)=x18java.lang.Object(List(x11))=x19Cond_820_0_length_NULL(x18, x12, x19)=List(x0[9])∧0=x120=x201090_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x11)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x11)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x11)), java.lang.Object(List(x3[10])), x0[9], NULL)∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (33)    (Cond_820_0_length_NULL(>(x22, -1), x22, java.lang.Object(List(x21)))=List(x0[10])∧>(x12, -1)=x18java.lang.Object(List(x11))=x19Cond_820_0_length_NULL(x18, x12, x19)=List(x0[9])∧0=x120=x221090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x21)), java.lang.Object(List(x3[10])), java.lang.Object(List(x11)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x21)), java.lang.Object(List(x3[10])), java.lang.Object(List(x11)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x21))), java.lang.Object(List(x11)), java.lang.Object(List(x3[10])), x0[9], java.lang.Object(List(x21)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (32) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (34)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x11)))=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x11)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x11)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x11)), java.lang.Object(List(x3[10])), x0[9], NULL)∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (33) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (35)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x11)))=List(x0[9])∧Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x21)))=List(x0[10]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x21)), java.lang.Object(List(x3[10])), java.lang.Object(List(x11)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x21)), java.lang.Object(List(x3[10])), java.lang.Object(List(x11)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x21))), java.lang.Object(List(x11)), java.lang.Object(List(x3[10])), x0[9], java.lang.Object(List(x21)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (30) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (36)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)



    We simplified constraint (34) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (37)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (35) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (38)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)



    We simplified constraint (31) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (39)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_97] = 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (37) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (40)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (36) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (41)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)



    We simplified constraint (38) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (42)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)



    We simplified constraint (39) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (43)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_97] = 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (40) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (44)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (41) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (45)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)



    We simplified constraint (42) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (46)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)



    We simplified constraint (43) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (47)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_97] = 0∧0 ≥ 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (44) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (48)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (45) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (49)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)



    We simplified constraint (46) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (50)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)



  • We consider the chain COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]), 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]), 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13]) which results in the following constraint:

    (51)    (346_0_length_ConstantStackPush(x1[8])=List(x0[9])∧x2[8]=x2[9]x3[8]=x3[9]x1[8]=x1[9]346_0_length_ConstantStackPush(x2[9])=List(x0[13])∧x1[9]=x1[13]x3[9]=x3[13]x0[9]=x0[13]x2[9]=java.lang.Object(List(x2[13])) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (51) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (52)    (0=x25820_0_length_NULL(x25, x1[8])=List(x0[9])∧1=x26820_0_length_NULL(x26, x2[13])=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], x1[8])≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], x1[8])≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), x1[8], x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (52) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x25, x1[8])=List(x0[9]) which results in the following new constraints:

    (53)    (List(x27)=List(x0[9])∧0=x271=x26820_0_length_NULL(x26, x2[13])=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), NULL, x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (54)    (Cond_820_0_length_NULL(>(x29, -1), x29, java.lang.Object(List(x28)))=List(x0[9])∧0=x291=x26820_0_length_NULL(x26, x2[13])=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x28)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x28)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), java.lang.Object(List(x28)), x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (53) using rules (I), (II), (III) which results in the following new constraint:

    (55)    (1=x26820_0_length_NULL(x26, x2[13])=List(0) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x2[13])), x3[8], NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x2[13])), x3[8], NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), NULL, x3[8], 0, java.lang.Object(List(x2[13])))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (54) using rule (VII) which results in the following new constraint:

    (56)    (>(x29, -1)=x35java.lang.Object(List(x28))=x36Cond_820_0_length_NULL(x35, x29, x36)=List(x0[9])∧0=x291=x26820_0_length_NULL(x26, x2[13])=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x28)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x28)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), java.lang.Object(List(x28)), x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (55) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x26, x2[13])=List(0) which results in the following new constraints:

    (57)    (List(x30)=List(0)∧1=x301090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(NULL)), x3[8], NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(NULL)), x3[8], NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(NULL))), NULL, x3[8], 0, java.lang.Object(List(NULL)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (58)    (Cond_820_0_length_NULL(>(x32, -1), x32, java.lang.Object(List(x31)))=List(0)∧1=x321090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x31)))), x3[8], NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x31)))), x3[8], NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x31))))), NULL, x3[8], 0, java.lang.Object(List(java.lang.Object(List(x31)))))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We solved constraint (57) using rules (I), (II), (III).We simplified constraint (58) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (59)    (Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x31)))=List(0) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x31)))), x3[8], NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x31)))), x3[8], NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x31))))), NULL, x3[8], 0, java.lang.Object(List(java.lang.Object(List(x31)))))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (56) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x26, x2[13])=List(x0[9]) which results in the following new constraints:

    (60)    (List(x37)=List(x0[9])∧>(x29, -1)=x35java.lang.Object(List(x28))=x36Cond_820_0_length_NULL(x35, x29, x36)=List(x0[9])∧0=x291=x371090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x28)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x28)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x28)), x3[8], x0[9], java.lang.Object(List(NULL)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (61)    (Cond_820_0_length_NULL(>(x39, -1), x39, java.lang.Object(List(x38)))=List(x0[9])∧>(x29, -1)=x35java.lang.Object(List(x28))=x36Cond_820_0_length_NULL(x35, x29, x36)=List(x0[9])∧0=x291=x391090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x38)))), x3[8], java.lang.Object(List(x28)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x38)))), x3[8], java.lang.Object(List(x28)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x38))))), java.lang.Object(List(x28)), x3[8], x0[9], java.lang.Object(List(java.lang.Object(List(x38)))))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (60) using rules (I), (II), (III), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (62)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x28)))=List(1) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x28)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x28)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x28)), x3[8], 1, java.lang.Object(List(NULL)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (61) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (63)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x28)))=List(x0[9])∧Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x38)))=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x38)))), x3[8], java.lang.Object(List(x28)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x38)))), x3[8], java.lang.Object(List(x28)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x38))))), java.lang.Object(List(x28)), x3[8], x0[9], java.lang.Object(List(java.lang.Object(List(x38)))))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (59) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (64)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_98] + x3[8] ≥ 0)



    We simplified constraint (62) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (65)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_98] + x3[8] ≥ 0)



    We simplified constraint (63) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (66)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_98] + x3[8] ≥ 0)



    We simplified constraint (65) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (67)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_98] + x3[8] ≥ 0)



    We simplified constraint (64) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (68)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_98] + x3[8] ≥ 0)



    We simplified constraint (66) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (69)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_98] + x3[8] ≥ 0)



    We simplified constraint (67) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (70)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_98] + x3[8] ≥ 0)



    We simplified constraint (68) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (71)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_98] + x3[8] ≥ 0)



    We simplified constraint (69) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (72)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_98] + x3[8] ≥ 0)



    We simplified constraint (70) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (73)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (71) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (74)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (72) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (75)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_98] ≥ 0)







For Pair COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]) the following chains were created:
  • We consider the chain 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]), COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]), 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]) which results in the following constraint:

    (76)    (<=(x4[7], x0[7])=TRUEList(x0[7])=List(x0[8])∧x1[7]=x1[8]x3[7]=x3[8]x4[7]=x4[8]x2[7]=x2[8]346_0_length_ConstantStackPush(x1[8])=List(x0[9])∧x2[8]=x2[9]x3[8]=x3[9]x1[8]=x1[9]COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (76) using rules (I), (II), (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (77)    (<=(x4[7], x0[7])=TRUE0=x42820_0_length_NULL(x42, x1[8])=List(x0[9]) ⇒ COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), x1[8], x3[7], x4[7], x2[7])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), x1[8], x3[7], x4[7], x2[7])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[7], x3[7], x1[8])∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (77) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x42, x1[8])=List(x0[9]) which results in the following new constraints:

    (78)    (List(x43)=List(x0[9])∧<=(x4[7], x0[7])=TRUE0=x43COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[7], x3[7], NULL)∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))


    (79)    (Cond_820_0_length_NULL(>(x45, -1), x45, java.lang.Object(List(x44)))=List(x0[9])∧<=(x4[7], x0[7])=TRUE0=x45COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x44)), x3[7], x4[7], x2[7])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x44)), x3[7], x4[7], x2[7])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x44))), x2[7], x3[7], java.lang.Object(List(x44)))∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (78) using rules (I), (II), (IV) which results in the following new constraint:

    (80)    (<=(x4[7], x0[7])=TRUECOND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[7], x3[7], NULL)∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (79) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (81)    (<=(x4[7], x0[7])=TRUECond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x44)))=List(x0[9]) ⇒ COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x44)), x3[7], x4[7], x2[7])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x44)), x3[7], x4[7], x2[7])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x44))), x2[7], x3[7], java.lang.Object(List(x44)))∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (80) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (82)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_99 + (-1)Bound*bni_99] + [bni_99]x3[7] ≥ 0∧[(-1)bso_100] ≥ 0)



    We simplified constraint (81) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (83)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-2)bni_99 + (-1)Bound*bni_99] + [bni_99]x3[7] ≥ 0∧[(-1)bso_100] ≥ 0)



    We simplified constraint (82) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (84)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_99 + (-1)Bound*bni_99] + [bni_99]x3[7] ≥ 0∧[(-1)bso_100] ≥ 0)



    We simplified constraint (83) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (85)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-2)bni_99 + (-1)Bound*bni_99] + [bni_99]x3[7] ≥ 0∧[(-1)bso_100] ≥ 0)



    We simplified constraint (84) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (86)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_99 + (-1)Bound*bni_99] + [bni_99]x3[7] ≥ 0∧[(-1)bso_100] ≥ 0)



    We simplified constraint (85) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (87)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-2)bni_99 + (-1)Bound*bni_99] + [bni_99]x3[7] ≥ 0∧[(-1)bso_100] ≥ 0)



    We simplified constraint (86) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (88)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_99] ≥ 0∧0 ≥ 0∧[(-1)bni_99 + (-1)Bound*bni_99] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_100] ≥ 0)



    We simplified constraint (87) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (89)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_99] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-2)bni_99 + (-1)Bound*bni_99] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_100] ≥ 0)







For Pair 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]) the following chains were created:
  • We consider the chain 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]), COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]) which results in the following constraint:

    (90)    (<=(x4[7], x0[7])=TRUEList(x0[7])=List(x0[8])∧x1[7]=x1[8]x3[7]=x3[8]x4[7]=x4[8]x2[7]=x2[8]1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥NonInfC∧1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])∧(UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥))



    We simplified constraint (90) using rules (I), (II), (IV) which results in the following new constraint:

    (91)    (<=(x4[7], x0[7])=TRUE1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥NonInfC∧1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])∧(UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥))



    We simplified constraint (91) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (92)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[(-1)bni_101 + (-1)Bound*bni_101] + [bni_101]x3[7] + [(-1)bni_101]x1[7] ≥ 0∧[(-1)bso_102] ≥ 0)



    We simplified constraint (92) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (93)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[(-1)bni_101 + (-1)Bound*bni_101] + [bni_101]x3[7] + [(-1)bni_101]x1[7] ≥ 0∧[(-1)bso_102] ≥ 0)



    We simplified constraint (93) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (94)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[(-1)bni_101 + (-1)Bound*bni_101] + [bni_101]x3[7] + [(-1)bni_101]x1[7] ≥ 0∧[(-1)bso_102] ≥ 0)



    We simplified constraint (94) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (95)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_101] ≥ 0∧[(-1)bni_101] ≥ 0∧0 ≥ 0∧[(-1)bni_101 + (-1)Bound*bni_101] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)







For Pair 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]) the following chains were created:
  • We consider the chain COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]), 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]), 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]) which results in the following constraint:

    (96)    (346_0_length_ConstantStackPush(x0[5])=List(x0[6])∧x1[5]=x2[6]x2[5]=x3[6]x0[5]=x1[6]346_0_length_ConstantStackPush(x2[6])=List(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x0[6]=x4[7]x2[6]=x2[7]1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (96) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (97)    (0=x48820_0_length_NULL(x48, x0[5])=List(x0[6])∧0=x49820_0_length_NULL(x49, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], x0[5])≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], x0[5])≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x0[5], x2[5], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (97) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x48, x0[5])=List(x0[6]) which results in the following new constraints:

    (98)    (List(x50)=List(x0[6])∧0=x500=x49820_0_length_NULL(x49, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), NULL, x2[5], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (99)    (Cond_820_0_length_NULL(>(x52, -1), x52, java.lang.Object(List(x51)))=List(x0[6])∧0=x520=x49820_0_length_NULL(x49, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x51)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x51)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x51)), x2[5], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (98) using rules (I), (II), (III) which results in the following new constraint:

    (100)    (0=x49820_0_length_NULL(x49, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(0), x2[6], x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), x2[6], x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), NULL, x2[5], 0, x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (99) using rule (VII) which results in the following new constraint:

    (101)    (>(x52, -1)=x58java.lang.Object(List(x51))=x59Cond_820_0_length_NULL(x58, x52, x59)=List(x0[6])∧0=x520=x49820_0_length_NULL(x49, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x51)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x51)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x51)), x2[5], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (100) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x49, x2[6])=List(x0[7]) which results in the following new constraints:

    (102)    (List(x53)=List(x0[7])∧0=x531020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), NULL, x2[5], 0, NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (103)    (Cond_820_0_length_NULL(>(x55, -1), x55, java.lang.Object(List(x54)))=List(x0[7])∧0=x551020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x54)), x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x54)), x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x54))), NULL, x2[5], 0, java.lang.Object(List(x54)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (102) using rules (I), (II), (IV) which results in the following new constraint:

    (104)    (1020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), NULL, x2[5], 0, NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (103) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (105)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x54)))=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x54)), x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x54)), x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x54))), NULL, x2[5], 0, java.lang.Object(List(x54)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (104) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (106)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_103] = 0∧[(-1)bso_104] ≥ 0)



    We simplified constraint (101) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x49, x2[6])=List(x0[7]) which results in the following new constraints:

    (107)    (List(x60)=List(x0[7])∧>(x52, -1)=x58java.lang.Object(List(x51))=x59Cond_820_0_length_NULL(x58, x52, x59)=List(x0[6])∧0=x520=x601020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x51)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x51)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x51)), x2[5], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (108)    (Cond_820_0_length_NULL(>(x62, -1), x62, java.lang.Object(List(x61)))=List(x0[7])∧>(x52, -1)=x58java.lang.Object(List(x51))=x59Cond_820_0_length_NULL(x58, x52, x59)=List(x0[6])∧0=x520=x621020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x61)), x2[5], java.lang.Object(List(x51)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x61)), x2[5], java.lang.Object(List(x51)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x61))), java.lang.Object(List(x51)), x2[5], x0[6], java.lang.Object(List(x61)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (107) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (109)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x51)))=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x51)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x51)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x51)), x2[5], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (108) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (110)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x51)))=List(x0[6])∧Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x61)))=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x61)), x2[5], java.lang.Object(List(x51)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x61)), x2[5], java.lang.Object(List(x51)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x61))), java.lang.Object(List(x51)), x2[5], x0[6], java.lang.Object(List(x61)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (105) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (111)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_104] ≥ 0)



    We simplified constraint (109) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (112)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_104] ≥ 0)



    We simplified constraint (110) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (113)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_104] ≥ 0)



    We simplified constraint (106) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (114)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_103] = 0∧[(-1)bso_104] ≥ 0)



    We simplified constraint (112) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (115)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_104] ≥ 0)



    We simplified constraint (111) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (116)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_104] ≥ 0)



    We simplified constraint (113) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (117)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_104] ≥ 0)



    We simplified constraint (114) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (118)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_103] = 0∧[(-1)bso_104] ≥ 0)



    We simplified constraint (115) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (119)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_104] ≥ 0)



    We simplified constraint (116) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (120)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_104] ≥ 0)



    We simplified constraint (117) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (121)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_104] ≥ 0)



    We simplified constraint (118) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (122)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_103] = 0∧0 ≥ 0∧[(-1)bso_104] ≥ 0)



    We simplified constraint (119) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (123)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_104] ≥ 0)



    We simplified constraint (120) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (124)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_104] ≥ 0)



    We simplified constraint (121) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (125)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_104] ≥ 0)







For Pair COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]) the following chains were created:
  • We consider the chain 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]), COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]), 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]) which results in the following constraint:

    (126)    (>(x3[4], 0)=TRUEx0[4]=x0[5]x1[4]=x1[5]x2[4]=x2[5]x3[4]=x3[5]346_0_length_ConstantStackPush(x0[5])=List(x0[6])∧x1[5]=x2[6]x2[5]=x3[6]x0[5]=x1[6]COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5])≥NonInfC∧COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5])≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥))



    We simplified constraint (126) using rules (III), (IV), (REWRITING) which results in the following new constraint:

    (127)    (>(x3[4], 0)=TRUE820_0_length_NULL(0, x0[5])=List(x0[6]) ⇒ COND_923_0_MAIN_NE(TRUE, x0[5], x1[4], x2[4], x3[4])≥NonInfC∧COND_923_0_MAIN_NE(TRUE, x0[5], x1[4], x2[4], x3[4])≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[4], x2[4], x0[5])∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥))



    We simplified constraint (127) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (128)    (0 ≥ 0 ⇒ (UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧[(-1)bni_105 + (-1)Bound*bni_105] + [bni_105]x2[4] + [(-1)bni_105]x0[5] ≥ 0∧[(-1)bso_106] ≥ 0)



    We simplified constraint (128) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (129)    (0 ≥ 0 ⇒ (UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧[(-1)bni_105 + (-1)Bound*bni_105] + [bni_105]x2[4] + [(-1)bni_105]x0[5] ≥ 0∧[(-1)bso_106] ≥ 0)



    We simplified constraint (129) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (130)    (0 ≥ 0 ⇒ (UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧[(-1)bni_105 + (-1)Bound*bni_105] + [bni_105]x2[4] + [(-1)bni_105]x0[5] ≥ 0∧[(-1)bso_106] ≥ 0)



    We simplified constraint (130) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (131)    (0 ≥ 0 ⇒ (UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧0 ≥ 0∧[bni_105] ≥ 0∧0 ≥ 0∧[(-1)bni_105] ≥ 0∧[(-1)bni_105 + (-1)Bound*bni_105] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_106] ≥ 0)







For Pair 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]) the following chains were created:
  • We consider the chain 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]), COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]) which results in the following constraint:

    (132)    (>(x3[4], 0)=TRUEx0[4]=x0[5]x1[4]=x1[5]x2[4]=x2[5]x3[4]=x3[5]923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥NonInfC∧923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])∧(UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥))



    We simplified constraint (132) using rule (IV) which results in the following new constraint:

    (133)    (>(x3[4], 0)=TRUE923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥NonInfC∧923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])∧(UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥))



    We simplified constraint (133) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (134)    (0 ≥ 0 ⇒ (UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧[(-1)bni_107 + (-1)Bound*bni_107] + [bni_107]x2[4] + [(-1)bni_107]x0[4] ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (134) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (135)    (0 ≥ 0 ⇒ (UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧[(-1)bni_107 + (-1)Bound*bni_107] + [bni_107]x2[4] + [(-1)bni_107]x0[4] ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (135) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (136)    (0 ≥ 0 ⇒ (UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧[(-1)bni_107 + (-1)Bound*bni_107] + [bni_107]x2[4] + [(-1)bni_107]x0[4] ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (136) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (137)    (0 ≥ 0 ⇒ (UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧0 ≥ 0∧[bni_107] ≥ 0∧0 ≥ 0∧[(-1)bni_107] ≥ 0∧[(-1)bni_107 + (-1)Bound*bni_107] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)







For Pair 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]) the following chains were created:
  • We consider the chain 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]), 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]), 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]) which results in the following constraint:

    (138)    (346_0_length_ConstantStackPush(x3[2])=List(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]x3[2]=x3[3]x1[3]=x0[4]x2[3]=x1[4]x3[3]=x2[4]fresh2[3]=x3[4]896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3])≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3])≥923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (138) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (139)    (0=x65820_0_length_NULL(x65, x3[2])=List(x0[3]) ⇒ 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], x3[2])≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], x3[2])≥923_0_MAIN_NE(x1[2], x2[2], x3[2], fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (139) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x65, x3[2])=List(x0[3]) which results in the following new constraints:

    (140)    (List(x66)=List(x0[3])∧0=x66896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], NULL)≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], NULL)≥923_0_MAIN_NE(x1[2], x2[2], NULL, fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))


    (141)    (Cond_820_0_length_NULL(>(x68, -1), x68, java.lang.Object(List(x67)))=List(x0[3])∧0=x68896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x67)))≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x67)))≥923_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(x67)), fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (140) using rules (I), (II), (III) which results in the following new constraint:

    (142)    (896_1_MAIN_INVOKEMETHOD(List(0), x1[2], x2[2], NULL)≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(0), x1[2], x2[2], NULL)≥923_0_MAIN_NE(x1[2], x2[2], NULL, fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (141) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (143)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x67)))=List(x0[3]) ⇒ 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x67)))≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x67)))≥923_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(x67)), fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (142) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (144)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_109] = 0∧[(-1)bso_110] ≥ 0)



    We simplified constraint (143) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (145)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_110] ≥ 0)



    We simplified constraint (144) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (146)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_109] = 0∧[(-1)bso_110] ≥ 0)



    We simplified constraint (145) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (147)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_110] ≥ 0)



    We simplified constraint (146) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (148)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_109] = 0∧[(-1)bso_110] ≥ 0)



    We simplified constraint (147) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (149)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_110] ≥ 0)



    We simplified constraint (148) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (150)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_109] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)



    We simplified constraint (149) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (151)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)







For Pair 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]) the following chains were created:
  • We consider the chain COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]), 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]), 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]) which results in the following constraint:

    (152)    (346_0_length_ConstantStackPush(x3[1])=List(x0[2])∧x2[1]=x1[2]x1[1]=x3[2]x3[1]=x2[2]346_0_length_ConstantStackPush(x3[2])=List(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]x3[2]=x3[3]845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2])≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2])≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (152) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (153)    (0=x71820_0_length_NULL(x71, x3[1])=List(x0[2])∧0=x72820_0_length_NULL(x72, x3[2])=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], x3[1])≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], x3[1])≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x2[1], x3[1], x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (153) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x71, x3[1])=List(x0[2]) which results in the following new constraints:

    (154)    (List(x73)=List(x0[2])∧0=x730=x72820_0_length_NULL(x72, x3[2])=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x2[1], NULL, x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))


    (155)    (Cond_820_0_length_NULL(>(x75, -1), x75, java.lang.Object(List(x74)))=List(x0[2])∧0=x750=x72820_0_length_NULL(x72, x3[2])=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x74)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x74)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x2[1], java.lang.Object(List(x74)), x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (154) using rules (I), (II), (III) which results in the following new constraint:

    (156)    (0=x72820_0_length_NULL(x72, x3[2])=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(0), x2[1], x3[2], NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], x3[2], NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x2[1], NULL, x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (155) using rule (VII) which results in the following new constraint:

    (157)    (>(x75, -1)=x81java.lang.Object(List(x74))=x82Cond_820_0_length_NULL(x81, x75, x82)=List(x0[2])∧0=x750=x72820_0_length_NULL(x72, x3[2])=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x74)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x74)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x2[1], java.lang.Object(List(x74)), x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (156) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x72, x3[2])=List(x0[3]) which results in the following new constraints:

    (158)    (List(x76)=List(x0[3])∧0=x76845_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[1], NULL, NULL)∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))


    (159)    (Cond_820_0_length_NULL(>(x78, -1), x78, java.lang.Object(List(x77)))=List(x0[3])∧0=x78845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x77)), NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x77)), NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x77))), x2[1], NULL, java.lang.Object(List(x77)))∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (158) using rules (I), (II), (IV) which results in the following new constraint:

    (160)    (845_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[1], NULL, NULL)∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (159) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (161)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x77)))=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x77)), NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x77)), NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x77))), x2[1], NULL, java.lang.Object(List(x77)))∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (160) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (162)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_111] = 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (157) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x72, x3[2])=List(x0[3]) which results in the following new constraints:

    (163)    (List(x83)=List(x0[3])∧>(x75, -1)=x81java.lang.Object(List(x74))=x82Cond_820_0_length_NULL(x81, x75, x82)=List(x0[2])∧0=x750=x83845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x74)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x74)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[1], java.lang.Object(List(x74)), NULL)∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))


    (164)    (Cond_820_0_length_NULL(>(x85, -1), x85, java.lang.Object(List(x84)))=List(x0[3])∧>(x75, -1)=x81java.lang.Object(List(x74))=x82Cond_820_0_length_NULL(x81, x75, x82)=List(x0[2])∧0=x750=x85845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x84)), java.lang.Object(List(x74)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x84)), java.lang.Object(List(x74)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x84))), x2[1], java.lang.Object(List(x74)), java.lang.Object(List(x84)))∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (163) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (165)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x74)))=List(x0[2]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x74)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x74)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[1], java.lang.Object(List(x74)), NULL)∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (164) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (166)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x74)))=List(x0[2])∧Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x84)))=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x84)), java.lang.Object(List(x74)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x84)), java.lang.Object(List(x74)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x84))), x2[1], java.lang.Object(List(x74)), java.lang.Object(List(x84)))∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (161) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (167)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (165) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (168)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (166) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (169)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (162) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (170)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_111] = 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (168) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (171)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (167) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (172)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (169) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (173)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (170) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (174)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_111] = 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (171) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (175)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (172) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (176)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (173) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (177)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (174) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (178)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_111] = 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (175) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (179)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (176) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (180)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (177) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (181)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)







For Pair COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]) the following chains were created:
  • We consider the chain 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]), COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]), 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]) which results in the following constraint:

    (182)    (>(x0[0], 0)=TRUEList(x0[0])=List(x0[1])∧x2[0]=x2[1]x3[0]=x3[1]x1[0]=x1[1]346_0_length_ConstantStackPush(x3[1])=List(x0[2])∧x2[1]=x1[2]x1[1]=x3[2]x3[1]=x2[2]COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1])≥NonInfC∧COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1])≥845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])∧(UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥))



    We simplified constraint (182) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (183)    (>(x0[0], 0)=TRUE820_0_length_NULL(0, x3[1])=List(x0[2]) ⇒ COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[0]), x2[0], x3[1], x1[0])≥NonInfC∧COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[0]), x2[0], x3[1], x1[0])≥845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[0], x1[0], x3[1])∧(UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥))



    We simplified constraint (183) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (184)    (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)bni_113 + (-1)Bound*bni_113] + [bni_113]x1[0] + [(-1)bni_113]x2[0] ≥ 0∧[(-1)bso_114] ≥ 0)



    We simplified constraint (184) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (185)    (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)bni_113 + (-1)Bound*bni_113] + [bni_113]x1[0] + [(-1)bni_113]x2[0] ≥ 0∧[(-1)bso_114] ≥ 0)



    We simplified constraint (185) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (186)    (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)bni_113 + (-1)Bound*bni_113] + [bni_113]x1[0] + [(-1)bni_113]x2[0] ≥ 0∧[(-1)bso_114] ≥ 0)



    We simplified constraint (186) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (187)    (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[bni_113] ≥ 0∧0 ≥ 0∧[(-1)bni_113] ≥ 0∧0 ≥ 0∧[(-1)bni_113 + (-1)Bound*bni_113] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_114] ≥ 0)







For Pair 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) the following chains were created:
  • We consider the chain 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]), COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]) which results in the following constraint:

    (188)    (>(x0[0], 0)=TRUEList(x0[0])=List(x0[1])∧x2[0]=x2[1]x3[0]=x3[1]x1[0]=x1[1]346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])∧(UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥))



    We simplified constraint (188) using rules (I), (II), (IV) which results in the following new constraint:

    (189)    (>(x0[0], 0)=TRUE346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])∧(UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥))



    We simplified constraint (189) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (190)    (0 ≥ 0 ⇒ (UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[(-1)bni_115 + (-1)Bound*bni_115] + [bni_115]x1[0] + [(-1)bni_115]x2[0] ≥ 0∧[(-1)bso_116] ≥ 0)



    We simplified constraint (190) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (191)    (0 ≥ 0 ⇒ (UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[(-1)bni_115 + (-1)Bound*bni_115] + [bni_115]x1[0] + [(-1)bni_115]x2[0] ≥ 0∧[(-1)bso_116] ≥ 0)



    We simplified constraint (191) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (192)    (0 ≥ 0 ⇒ (UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[(-1)bni_115 + (-1)Bound*bni_115] + [bni_115]x1[0] + [(-1)bni_115]x2[0] ≥ 0∧[(-1)bso_116] ≥ 0)



    We simplified constraint (192) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (193)    (0 ≥ 0 ⇒ (UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[bni_115] ≥ 0∧0 ≥ 0∧[(-1)bni_115] ≥ 0∧0 ≥ 0∧[(-1)bni_115 + (-1)Bound*bni_115] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_116] ≥ 0)







For Pair 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) the following chains were created:
  • We consider the chain COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11]), 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]), 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) which results in the following constraint:

    (194)    (1275_0_test_Load(x1[11])=1522_0_test_Returnx1[11]=x0[12]x2[11]=x1[12]x3[11]=x2[12]346_0_length_ConstantStackPush(x0[12])=List(x0[0])∧x1[12]=x2[0]x2[12]=x3[0]x0[12]=x1[0]1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (194) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (195)    (1518_0_test_NULL(x1[11])=1522_0_test_Return0=x88820_0_length_NULL(x88, x1[11])=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x1[11], x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x1[11], x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (195) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[11])=1522_0_test_Return which results in the following new constraints:

    (196)    (1522_0_test_Return=1522_0_test_Return0=x88820_0_length_NULL(x88, NULL)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[11], x3[11], NULL)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))


    (197)    (1518_0_test_NULL(x89)=1522_0_test_Return0=x88820_0_length_NULL(x88, java.lang.Object(List(x89)))=List(x0[0])∧(∀x90,x91,x92,x93:1518_0_test_NULL(x89)=1522_0_test_Return0=x90820_0_length_NULL(x90, x89)=List(x91) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x89, x92, x93)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x89, x92, x93)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x89), x92, x93, x89)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x89)), x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x89)), x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x89))), x2[11], x3[11], java.lang.Object(List(x89)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (196) using rules (I), (II), (IV), (REWRITING) which results in the following new constraint:

    (198)    (1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[11], x3[11], NULL)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (197) using rules (VII), (REWRITING) which results in the following new constraint:

    (199)    (1518_0_test_NULL(x89)=1522_0_test_Return0=x88∧(∀x90,x91,x92,x93:1518_0_test_NULL(x89)=1522_0_test_Return0=x90820_0_length_NULL(x90, x89)=List(x91) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x89, x92, x93)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x89, x92, x93)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x89), x92, x93, x89)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x88, -1)=x97java.lang.Object(List(x89))=x98Cond_820_0_length_NULL(x97, x88, x98)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x89)), x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x89)), x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x89))), x2[11], x3[11], java.lang.Object(List(x89)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (198) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (200)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_117] = 0∧[(-1)bso_118] ≥ 0)



    We simplified constraint (199) using rule (V) (with possible (I) afterwards) using induction on Cond_820_0_length_NULL(x97, x88, x98)=List(x0[0]) which results in the following new constraint:

    (201)    (820_0_length_NULL(+(x100, 1), x99)=List(x0[0])∧1518_0_test_NULL(x89)=1522_0_test_Return0=x100∧(∀x90,x91,x92,x93:1518_0_test_NULL(x89)=1522_0_test_Return0=x90820_0_length_NULL(x90, x89)=List(x91) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x89, x92, x93)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x89, x92, x93)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x89), x92, x93, x89)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x100, -1)=TRUEjava.lang.Object(List(x89))=java.lang.Object(List(x99)) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x89)), x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x89)), x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x89))), x2[11], x3[11], java.lang.Object(List(x89)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (201) using rules (I), (II), (III), (VII), (IDP_CONSTANT_FOLD), (DELETE_TRIVIAL_REDUCESTO) which results in the following new constraint:

    (202)    (1518_0_test_NULL(x99)=1522_0_test_Return∧(∀x90,x91,x92,x93:1518_0_test_NULL(x99)=1522_0_test_Return0=x90820_0_length_NULL(x90, x99)=List(x91) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x99, x92, x93)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x99, x92, x93)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x99), x92, x93, x99)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧820_0_length_NULL(1, x99)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x99)), x2[11], x3[11])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x99)), x2[11], x3[11])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x99))), x2[11], x3[11], java.lang.Object(List(x99)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (202) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (203)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_118] ≥ 0)



    We simplified constraint (200) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (204)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_117] = 0∧[(-1)bso_118] ≥ 0)



    We simplified constraint (203) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (205)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_118] ≥ 0)



    We simplified constraint (204) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (206)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_117] = 0∧[(-1)bso_118] ≥ 0)



    We simplified constraint (205) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (207)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_118] ≥ 0)



    We simplified constraint (206) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (208)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_117] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_118] ≥ 0)



    We simplified constraint (207) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (209)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_118] ≥ 0)



  • We consider the chain 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13]), 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]), 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) which results in the following constraint:

    (210)    (1275_0_test_Load(x1[13])=1522_0_test_Returnx1[13]=x0[12]x2[13]=x1[12]x3[13]=x2[12]346_0_length_ConstantStackPush(x0[12])=List(x0[0])∧x1[12]=x2[0]x2[12]=x3[0]x0[12]=x1[0]1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (210) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (211)    (1518_0_test_NULL(x1[13])=1522_0_test_Return0=x102820_0_length_NULL(x102, x1[13])=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x1[13], x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x1[13], x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (211) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[13])=1522_0_test_Return which results in the following new constraints:

    (212)    (1522_0_test_Return=1522_0_test_Return0=x102820_0_length_NULL(x102, NULL)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[13], x3[13], NULL)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))


    (213)    (1518_0_test_NULL(x103)=1522_0_test_Return0=x102820_0_length_NULL(x102, java.lang.Object(List(x103)))=List(x0[0])∧(∀x104,x105,x106,x107:1518_0_test_NULL(x103)=1522_0_test_Return0=x104820_0_length_NULL(x104, x103)=List(x105) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x103, x106, x107)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x103, x106, x107)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x103), x106, x107, x103)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x103)), x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x103)), x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x103))), x2[13], x3[13], java.lang.Object(List(x103)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (212) using rules (I), (II), (IV), (REWRITING) which results in the following new constraint:

    (214)    (1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[13], x3[13], NULL)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (213) using rules (VII), (REWRITING) which results in the following new constraint:

    (215)    (1518_0_test_NULL(x103)=1522_0_test_Return0=x102∧(∀x104,x105,x106,x107:1518_0_test_NULL(x103)=1522_0_test_Return0=x104820_0_length_NULL(x104, x103)=List(x105) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x103, x106, x107)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x103, x106, x107)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x103), x106, x107, x103)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x102, -1)=x111java.lang.Object(List(x103))=x112Cond_820_0_length_NULL(x111, x102, x112)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x103)), x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x103)), x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x103))), x2[13], x3[13], java.lang.Object(List(x103)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (214) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (216)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_117] = 0∧[(-1)bso_118] ≥ 0)



    We simplified constraint (215) using rule (V) (with possible (I) afterwards) using induction on Cond_820_0_length_NULL(x111, x102, x112)=List(x0[0]) which results in the following new constraint:

    (217)    (820_0_length_NULL(+(x114, 1), x113)=List(x0[0])∧1518_0_test_NULL(x103)=1522_0_test_Return0=x114∧(∀x104,x105,x106,x107:1518_0_test_NULL(x103)=1522_0_test_Return0=x104820_0_length_NULL(x104, x103)=List(x105) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x103, x106, x107)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x103, x106, x107)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x103), x106, x107, x103)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x114, -1)=TRUEjava.lang.Object(List(x103))=java.lang.Object(List(x113)) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x103)), x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x103)), x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x103))), x2[13], x3[13], java.lang.Object(List(x103)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (217) using rules (I), (II), (III), (VII), (IDP_CONSTANT_FOLD), (DELETE_TRIVIAL_REDUCESTO) which results in the following new constraint:

    (218)    (1518_0_test_NULL(x113)=1522_0_test_Return∧(∀x104,x105,x106,x107:1518_0_test_NULL(x113)=1522_0_test_Return0=x104820_0_length_NULL(x104, x113)=List(x105) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x113, x106, x107)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x113, x106, x107)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x113), x106, x107, x113)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧820_0_length_NULL(1, x113)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x113)), x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x113)), x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x113))), x2[13], x3[13], java.lang.Object(List(x113)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (218) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (219)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_118] ≥ 0)



    We simplified constraint (216) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (220)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_117] = 0∧[(-1)bso_118] ≥ 0)



    We simplified constraint (219) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (221)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_118] ≥ 0)



    We simplified constraint (220) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (222)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_117] = 0∧[(-1)bso_118] ≥ 0)



    We simplified constraint (221) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (223)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_118] ≥ 0)



    We simplified constraint (222) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (224)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_117] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_118] ≥ 0)



    We simplified constraint (223) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (225)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_118] ≥ 0)







For Pair 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13]) the following chains were created:
  • We consider the chain 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]), 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13]), 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) which results in the following constraint:

    (226)    (346_0_length_ConstantStackPush(x2[9])=List(x0[13])∧x1[9]=x1[13]x3[9]=x3[13]x0[9]=x0[13]x2[9]=java.lang.Object(List(x2[13]))∧1275_0_test_Load(x1[13])=1522_0_test_Returnx1[13]=x0[12]x2[13]=x1[12]x3[13]=x2[12]1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (226) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (227)    (1518_0_test_NULL(x1[13])=1522_0_test_Return1=x116820_0_length_NULL(x116, x2[13])=List(x0[9]) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), x1[13], x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), x1[13], x3[9], x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (227) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[13])=1522_0_test_Return which results in the following new constraints:

    (228)    (1522_0_test_Return=1522_0_test_Return1=x116820_0_length_NULL(x116, x2[13])=List(x0[9]) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, x2[13], x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))


    (229)    (1518_0_test_NULL(x117)=1522_0_test_Return1=x116820_0_length_NULL(x116, x2[13])=List(x0[9])∧(∀x118,x119,x120,x121:1518_0_test_NULL(x117)=1522_0_test_Return1=x118820_0_length_NULL(x118, x119)=List(x120) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x120), x117, x121, x120, java.lang.Object(List(x119)))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x120), x117, x121, x120, java.lang.Object(List(x119)))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x117), x117, x119, x121)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x117)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x117)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(java.lang.Object(List(x117))), java.lang.Object(List(x117)), x2[13], x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (228) using rules (I), (II) which results in the following new constraint:

    (230)    (1=x116820_0_length_NULL(x116, x2[13])=List(x0[9]) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, x2[13], x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (229) using rule (VI) where we applied the induction hypothesis (∀x118,x119,x120,x121:1518_0_test_NULL(x117)=1522_0_test_Return1=x118820_0_length_NULL(x118, x119)=List(x120) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x120), x117, x121, x120, java.lang.Object(List(x119)))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x120), x117, x121, x120, java.lang.Object(List(x119)))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x117), x117, x119, x121)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)) with σ = [x118 / x116, x119 / x2[13], x120 / x0[9]] which results in the following new constraint:

    (231)    (1113_1_MAIN_INVOKEMETHOD(List(x0[9]), x117, x121, x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), x117, x121, x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x117), x117, x2[13], x121)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x117)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x117)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(java.lang.Object(List(x117))), java.lang.Object(List(x117)), x2[13], x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (230) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x116, x2[13])=List(x0[9]) which results in the following new constraints:

    (232)    (List(x124)=List(x0[9])∧1=x1241113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(NULL)))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(NULL)))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, NULL, x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))


    (233)    (Cond_820_0_length_NULL(>(x126, -1), x126, java.lang.Object(List(x125)))=List(x0[9])∧1=x1261113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x125)))))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x125)))))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, java.lang.Object(List(x125)), x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (232) using rules (I), (II), (III) which results in the following new constraint:

    (234)    (1113_1_MAIN_INVOKEMETHOD(List(1), NULL, x3[9], 1, java.lang.Object(List(NULL)))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(1), NULL, x3[9], 1, java.lang.Object(List(NULL)))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, NULL, x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (233) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (235)    (Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x125)))=List(x0[9]) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x125)))))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x125)))))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, java.lang.Object(List(x125)), x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (234) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (236)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (231) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (237)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] + [-1]x117 ≥ 0∧[-1] + x2[13] + [-2]x117 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[-2 + (-1)bso_120] + x2[13] ≥ 0)



    We simplified constraint (235) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (238)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[1 + (-1)bso_120] ≥ 0)



    We simplified constraint (236) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (239)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (238) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (240)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[1 + (-1)bso_120] ≥ 0)



    We simplified constraint (237) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (241)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] + [-1]x117 ≥ 0∧[-1] + x2[13] + [-2]x117 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[-2 + (-1)bso_120] + x2[13] ≥ 0)



    We simplified constraint (239) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (242)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (240) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (243)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[1 + (-1)bso_120] ≥ 0)



    We simplified constraint (241) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (244)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] + [-1]x117 ≥ 0∧[-1] + x2[13] + [-2]x117 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[-2 + (-1)bso_120] + x2[13] ≥ 0)



    We simplified constraint (242) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (245)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_119] = 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (243) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (246)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_120] ≥ 0)



    We simplified constraint (244) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (247)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] + [-1]x117 ≥ 0∧[-1] + x2[13] + [-2]x117 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[-2 + (-1)bso_120] + x2[13] ≥ 0)



    We solved constraint (247) using rule (IDP_SMT_SPLIT).




To summarize, we get the following constraints P for the following pairs.
  • COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
    • (0 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_93] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_93 + (-1)Bound*bni_93] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_94] ≥ 0)

  • 1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[(-1)bni_95] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_95] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_95] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_96] ≥ 0)

  • 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_97] = 0∧0 ≥ 0∧[(-1)bso_98] ≥ 0)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_98] ≥ 0)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[(-1)bso_98] ≥ 0)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧[(-1)bso_98] ≥ 0)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_98] ≥ 0)

  • COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
    • (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_99] ≥ 0∧0 ≥ 0∧[(-1)bni_99 + (-1)Bound*bni_99] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_100] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_99] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-2)bni_99 + (-1)Bound*bni_99] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_100] ≥ 0)

  • 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_101] ≥ 0∧[(-1)bni_101] ≥ 0∧0 ≥ 0∧[(-1)bni_101 + (-1)Bound*bni_101] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)

  • 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_103] = 0∧0 ≥ 0∧[(-1)bso_104] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_104] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_104] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_104] ≥ 0)

  • COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
    • (0 ≥ 0 ⇒ (UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧0 ≥ 0∧[bni_105] ≥ 0∧0 ≥ 0∧[(-1)bni_105] ≥ 0∧[(-1)bni_105 + (-1)Bound*bni_105] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_106] ≥ 0)

  • 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧0 ≥ 0∧[bni_107] ≥ 0∧0 ≥ 0∧[(-1)bni_107] ≥ 0∧[(-1)bni_107 + (-1)Bound*bni_107] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)

  • 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
    • ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_109] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)
    • ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)

  • 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
    • ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_111] = 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)
    • ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)
    • ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)
    • ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)

  • COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
    • (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[bni_113] ≥ 0∧0 ≥ 0∧[(-1)bni_113] ≥ 0∧0 ≥ 0∧[(-1)bni_113 + (-1)Bound*bni_113] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_114] ≥ 0)

  • 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[bni_115] ≥ 0∧0 ≥ 0∧[(-1)bni_115] ≥ 0∧0 ≥ 0∧[(-1)bni_115 + (-1)Bound*bni_115] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_116] ≥ 0)

  • 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
    • ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_117] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_118] ≥ 0)
    • ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_118] ≥ 0)
    • ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_117] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_118] ≥ 0)
    • ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_118] ≥ 0)

  • 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
    • ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_119] = 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_120] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers with natural coefficients for non-tuple symbols [NONINF][POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(346_0_length_ConstantStackPush(x1)) = 0   
POL(820_0_length_NULL(x1, x2)) = 0   
POL(0) = 0   
POL(1275_0_test_Load(x1)) = 0   
POL(1518_0_test_NULL(x1)) = 0   
POL(NULL) = 0   
POL(List(x1)) = 0   
POL(java.lang.Object(x1)) = [1]   
POL(Cond_820_0_length_NULL(x1, x2, x3)) = 0   
POL(>(x1, x2)) = 0   
POL(-1) = 0   
POL(+(x1, x2)) = 0   
POL(1) = 0   
POL(1522_0_test_Return) = 0   
POL(COND_1113_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x6 + [-1]x3 + [-1]x2   
POL(1275_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + [-1]x3 + x2 + [-1]x1   
POL(1113_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1]x5 + [-1]x2 + [-1]x1   
POL(!(x1)) = 0   
POL(=(x1, x2)) = 0   
POL(1090_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + [-1]x4 + x3 + [-1]x1   
POL(COND_1050_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + x4 + [-1]x3 + [-1]x2   
POL(1050_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x3 + [-1]x2 + [-1]x1   
POL(<=(x1, x2)) = 0   
POL(1020_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + [-1]x4 + x3 + [-1]x1   
POL(COND_923_0_MAIN_NE(x1, x2, x3, x4, x5)) = [-1] + x4 + [-1]x2   
POL(923_0_MAIN_NE(x1, x2, x3, x4)) = [-1] + x3 + [-1]x1   
POL(896_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + [-1]x2 + [-1]x1   
POL(845_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x3 + [-1]x2 + [-1]x1   
POL(COND_346_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x5 + [-1]x3 + [-1]x2   
POL(346_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + [-1]x2 + [-1]x1   

The following pairs are in P>:

1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])

The following pairs are in Pbound:

COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])

The following pairs are in P:

COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])
1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])
896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])
1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])

At least the following rules have been oriented under context sensitive arithmetic replacement:

1275_0_test_Load(x0)11518_0_test_NULL(x0)1
1518_0_test_NULL(NULL)11522_0_test_Return1
1518_0_test_NULL(java.lang.Object(List(x0)))11518_0_test_NULL(x0)1
FALSE1!(TRUE)1
TRUE1!(FALSE)1
346_0_length_ConstantStackPush(x0)1820_0_length_NULL(0, x0)1
820_0_length_NULL(x0, NULL)1List(x0)1
820_0_length_NULL(x1, java.lang.Object(List(x0)))1Cond_820_0_length_NULL(>(x1, -1), x1, java.lang.Object(List(x0)))1
Cond_820_0_length_NULL(TRUE, x1, java.lang.Object(List(x0)))1820_0_length_NULL(+(x1, 1), x0)1

(48) Complex Obligation (AND)

(49) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


The ITRS R consists of the following rules:
346_0_length_ConstantStackPush(x0) → 820_0_length_NULL(0, x0)
1275_0_test_Load(x0) → 1518_0_test_NULL(x0)
820_0_length_NULL(x0, NULL) → List(x0)
820_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_820_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_820_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 820_0_length_NULL(x1 + 1, x0)
1518_0_test_NULL(NULL) → 1522_0_test_Return
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)

The integer pair graph contains the following rules and edges:
(11): COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
(9): 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
(8): COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
(7): 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(x4[7] <= x0[7], List(x0[7]), x1[7], x3[7], x4[7], x2[7])
(6): 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
(5): COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
(4): 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(x3[4] > 0, x0[4], x1[4], x2[4], x3[4])
(3): 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
(2): 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
(1): COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
(0): 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(x0[0] > 0, List(x0[0]), x2[0], x3[0], x1[0])
(12): 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
(13): 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])

(12) -> (0), if (346_0_length_ConstantStackPush(x0[12]) →* List(x0[0])∧x1[12]* x2[0]x2[12]* x3[0]x0[12]* x1[0])


(0) -> (1), if (x0[0] > 0List(x0[0]) →* List(x0[1])∧x2[0]* x2[1]x3[0]* x3[1]x1[0]* x1[1])


(1) -> (2), if (346_0_length_ConstantStackPush(x3[1]) →* List(x0[2])∧x2[1]* x1[2]x1[1]* x3[2]x3[1]* x2[2])


(2) -> (3), if (346_0_length_ConstantStackPush(x3[2]) →* List(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x3[2]* x3[3])


(3) -> (4), if (x1[3]* x0[4]x2[3]* x1[4]x3[3]* x2[4]fresh2[3]* x3[4])


(4) -> (5), if (x3[4] > 0x0[4]* x0[5]x1[4]* x1[5]x2[4]* x2[5]x3[4]* x3[5])


(5) -> (6), if (346_0_length_ConstantStackPush(x0[5]) →* List(x0[6])∧x1[5]* x2[6]x2[5]* x3[6]x0[5]* x1[6])


(6) -> (7), if (346_0_length_ConstantStackPush(x2[6]) →* List(x0[7])∧x1[6]* x1[7]x3[6]* x3[7]x0[6]* x4[7]x2[6]* x2[7])


(7) -> (8), if (x4[7] <= x0[7]List(x0[7]) →* List(x0[8])∧x1[7]* x1[8]x3[7]* x3[8]x4[7]* x4[8]x2[7]* x2[8])


(8) -> (9), if (346_0_length_ConstantStackPush(x1[8]) →* List(x0[9])∧x2[8]* x2[9]x3[8]* x3[9]x1[8]* x1[9])


(11) -> (12), if (1275_0_test_Load(x1[11]) →* 1522_0_test_Returnx1[11]* x0[12]x2[11]* x1[12]x3[11]* x2[12])


(13) -> (12), if (1275_0_test_Load(x1[13]) →* 1522_0_test_Returnx1[13]* x0[12]x2[13]* x1[12]x3[13]* x2[12])


(9) -> (13), if (346_0_length_ConstantStackPush(x2[9]) →* List(x0[13])∧x1[9]* x1[13]x3[9]* x3[13]x0[9]* x0[13]x2[9]* java.lang.Object(List(x2[13])))



The set Q consists of the following terms:
346_0_length_ConstantStackPush(x0)
937_0_length_ConstantStackPush(java.lang.Object(List(x0)))
820_0_length_NULL(x0, NULL)
820_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_820_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))
1275_0_test_Load(x0)
1518_0_test_NULL(NULL)
1518_0_test_NULL(java.lang.Object(List(x0)))

(50) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node.

(51) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


The ITRS R consists of the following rules:
346_0_length_ConstantStackPush(x0) → 820_0_length_NULL(0, x0)
1275_0_test_Load(x0) → 1518_0_test_NULL(x0)
820_0_length_NULL(x0, NULL) → List(x0)
820_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_820_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_820_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 820_0_length_NULL(x1 + 1, x0)
1518_0_test_NULL(NULL) → 1522_0_test_Return
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)

The integer pair graph contains the following rules and edges:
(13): 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
(9): 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
(8): COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
(7): 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(x4[7] <= x0[7], List(x0[7]), x1[7], x3[7], x4[7], x2[7])
(6): 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
(5): COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
(4): 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(x3[4] > 0, x0[4], x1[4], x2[4], x3[4])
(3): 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
(2): 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
(1): COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
(0): 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(x0[0] > 0, List(x0[0]), x2[0], x3[0], x1[0])
(12): 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])

(12) -> (0), if (346_0_length_ConstantStackPush(x0[12]) →* List(x0[0])∧x1[12]* x2[0]x2[12]* x3[0]x0[12]* x1[0])


(0) -> (1), if (x0[0] > 0List(x0[0]) →* List(x0[1])∧x2[0]* x2[1]x3[0]* x3[1]x1[0]* x1[1])


(1) -> (2), if (346_0_length_ConstantStackPush(x3[1]) →* List(x0[2])∧x2[1]* x1[2]x1[1]* x3[2]x3[1]* x2[2])


(2) -> (3), if (346_0_length_ConstantStackPush(x3[2]) →* List(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x3[2]* x3[3])


(3) -> (4), if (x1[3]* x0[4]x2[3]* x1[4]x3[3]* x2[4]fresh2[3]* x3[4])


(4) -> (5), if (x3[4] > 0x0[4]* x0[5]x1[4]* x1[5]x2[4]* x2[5]x3[4]* x3[5])


(5) -> (6), if (346_0_length_ConstantStackPush(x0[5]) →* List(x0[6])∧x1[5]* x2[6]x2[5]* x3[6]x0[5]* x1[6])


(6) -> (7), if (346_0_length_ConstantStackPush(x2[6]) →* List(x0[7])∧x1[6]* x1[7]x3[6]* x3[7]x0[6]* x4[7]x2[6]* x2[7])


(7) -> (8), if (x4[7] <= x0[7]List(x0[7]) →* List(x0[8])∧x1[7]* x1[8]x3[7]* x3[8]x4[7]* x4[8]x2[7]* x2[8])


(8) -> (9), if (346_0_length_ConstantStackPush(x1[8]) →* List(x0[9])∧x2[8]* x2[9]x3[8]* x3[9]x1[8]* x1[9])


(13) -> (12), if (1275_0_test_Load(x1[13]) →* 1522_0_test_Returnx1[13]* x0[12]x2[13]* x1[12]x3[13]* x2[12])


(9) -> (13), if (346_0_length_ConstantStackPush(x2[9]) →* List(x0[13])∧x1[9]* x1[13]x3[9]* x3[13]x0[9]* x0[13]x2[9]* java.lang.Object(List(x2[13])))



The set Q consists of the following terms:
346_0_length_ConstantStackPush(x0)
937_0_length_ConstantStackPush(java.lang.Object(List(x0)))
820_0_length_NULL(x0, NULL)
820_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_820_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))
1275_0_test_Load(x0)
1518_0_test_NULL(NULL)
1518_0_test_NULL(java.lang.Object(List(x0)))

(52) IDPNonInfProof (SOUND transformation)

Used the following options for this NonInfProof:
IDPGPoloSolver: Range: [(-1,2)] IsNat: true Interpretation Shape Heuristic: aprove.DPFramework.IDPProblem.Processors.nonInf.poly.IdpDefaultShapeHeuristic@651d26b3 Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 1 Max Right Steps: 1

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13]) the following chains were created:
  • We consider the chain 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]), 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13]), 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) which results in the following constraint:

    (1)    (346_0_length_ConstantStackPush(x2[9])=List(x0[13])∧x1[9]=x1[13]x3[9]=x3[13]x0[9]=x0[13]x2[9]=java.lang.Object(List(x2[13]))∧1275_0_test_Load(x1[13])=1522_0_test_Returnx1[13]=x0[12]x2[13]=x1[12]x3[13]=x2[12]1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (1) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (2)    (1518_0_test_NULL(x1[13])=1522_0_test_Return1=x0820_0_length_NULL(x0, x2[13])=List(x0[9]) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), x1[13], x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), x1[13], x3[9], x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[13])=1522_0_test_Return which results in the following new constraints:

    (3)    (1522_0_test_Return=1522_0_test_Return1=x0820_0_length_NULL(x0, x2[13])=List(x0[9]) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, x2[13], x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))


    (4)    (1518_0_test_NULL(x1)=1522_0_test_Return1=x0820_0_length_NULL(x0, x2[13])=List(x0[9])∧(∀x2,x3,x4,x5:1518_0_test_NULL(x1)=1522_0_test_Return1=x2820_0_length_NULL(x2, x3)=List(x4) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x4), x1, x5, x4, java.lang.Object(List(x3)))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x4), x1, x5, x4, java.lang.Object(List(x3)))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1), x1, x3, x5)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x1)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x1)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(java.lang.Object(List(x1))), java.lang.Object(List(x1)), x2[13], x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (3) using rules (I), (II) which results in the following new constraint:

    (5)    (1=x0820_0_length_NULL(x0, x2[13])=List(x0[9]) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, x2[13], x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (4) using rule (VI) where we applied the induction hypothesis (∀x2,x3,x4,x5:1518_0_test_NULL(x1)=1522_0_test_Return1=x2820_0_length_NULL(x2, x3)=List(x4) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x4), x1, x5, x4, java.lang.Object(List(x3)))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x4), x1, x5, x4, java.lang.Object(List(x3)))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1), x1, x3, x5)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)) with σ = [x2 / x0, x3 / x2[13], x4 / x0[9]] which results in the following new constraint:

    (6)    (1113_1_MAIN_INVOKEMETHOD(List(x0[9]), x1, x5, x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), x1, x5, x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1), x1, x2[13], x5)∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x1)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x1)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(java.lang.Object(List(x1))), java.lang.Object(List(x1)), x2[13], x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x0, x2[13])=List(x0[9]) which results in the following new constraints:

    (7)    (List(x8)=List(x0[9])∧1=x81113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(NULL)))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(NULL)))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, NULL, x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))


    (8)    (Cond_820_0_length_NULL(>(x10, -1), x10, java.lang.Object(List(x9)))=List(x0[9])∧1=x101113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x9)))))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x9)))))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, java.lang.Object(List(x9)), x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (7) using rules (I), (II), (III) which results in the following new constraint:

    (9)    (1113_1_MAIN_INVOKEMETHOD(List(1), NULL, x3[9], 1, java.lang.Object(List(NULL)))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(1), NULL, x3[9], 1, java.lang.Object(List(NULL)))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, NULL, x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (8) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (10)    (Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x9)))=List(x0[9]) ⇒ 1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x9)))))≥NonInfC∧1113_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x9)))))≥1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(NULL), NULL, java.lang.Object(List(x9)), x3[9])∧(UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (9) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (11)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_86] = 0∧[(-1)bso_87] ≥ 0)



    We simplified constraint (6) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (12)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] + x5 ≥ 0∧[-1] + [-1]x1 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[-1 + (-1)bso_87] ≥ 0)



    We simplified constraint (10) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (13)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[(-1)bso_87] ≥ 0)



    We simplified constraint (11) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (14)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_86] = 0∧[(-1)bso_87] ≥ 0)



    We simplified constraint (13) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (15)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[(-1)bso_87] ≥ 0)



    We simplified constraint (12) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (16)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] + x5 ≥ 0∧[-1] + [-1]x1 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[-1 + (-1)bso_87] ≥ 0)



    We simplified constraint (14) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (17)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_86] = 0∧[(-1)bso_87] ≥ 0)



    We simplified constraint (15) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (18)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[(-1)bso_87] ≥ 0)



    We simplified constraint (16) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (19)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] + x5 ≥ 0∧[-1] + [-1]x1 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[-1 + (-1)bso_87] ≥ 0)



    We simplified constraint (17) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (20)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_86] = 0∧0 ≥ 0∧[(-1)bso_87] ≥ 0)



    We simplified constraint (18) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (21)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_87] ≥ 0)



    We simplified constraint (19) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (22)    ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] + x5 ≥ 0∧[-1] + [-1]x1 ≥ 0 ⇒ (UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[-1 + (-1)bso_87] ≥ 0)



    We solved constraint (22) using rule (IDP_SMT_SPLIT).




For Pair 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]) the following chains were created:
  • We consider the chain COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]), 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]), 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13]) which results in the following constraint:

    (23)    (346_0_length_ConstantStackPush(x1[8])=List(x0[9])∧x2[8]=x2[9]x3[8]=x3[9]x1[8]=x1[9]346_0_length_ConstantStackPush(x2[9])=List(x0[13])∧x1[9]=x1[13]x3[9]=x3[13]x0[9]=x0[13]x2[9]=java.lang.Object(List(x2[13])) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (23) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (24)    (0=x13820_0_length_NULL(x13, x1[8])=List(x0[9])∧1=x14820_0_length_NULL(x14, x2[13])=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], x1[8])≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], x1[8])≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), x1[8], x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (24) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x13, x1[8])=List(x0[9]) which results in the following new constraints:

    (25)    (List(x15)=List(x0[9])∧0=x151=x14820_0_length_NULL(x14, x2[13])=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), NULL, x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (26)    (Cond_820_0_length_NULL(>(x17, -1), x17, java.lang.Object(List(x16)))=List(x0[9])∧0=x171=x14820_0_length_NULL(x14, x2[13])=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x16)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x16)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), java.lang.Object(List(x16)), x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (25) using rules (I), (II), (III) which results in the following new constraint:

    (27)    (1=x14820_0_length_NULL(x14, x2[13])=List(0) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x2[13])), x3[8], NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x2[13])), x3[8], NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), NULL, x3[8], 0, java.lang.Object(List(x2[13])))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (26) using rule (VII) which results in the following new constraint:

    (28)    (>(x17, -1)=x23java.lang.Object(List(x16))=x24Cond_820_0_length_NULL(x23, x17, x24)=List(x0[9])∧0=x171=x14820_0_length_NULL(x14, x2[13])=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x16)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x16)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), java.lang.Object(List(x16)), x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (27) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x14, x2[13])=List(0) which results in the following new constraints:

    (29)    (List(x18)=List(0)∧1=x181090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(NULL)), x3[8], NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(NULL)), x3[8], NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(NULL))), NULL, x3[8], 0, java.lang.Object(List(NULL)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (30)    (Cond_820_0_length_NULL(>(x20, -1), x20, java.lang.Object(List(x19)))=List(0)∧1=x201090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x19)))), x3[8], NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x19)))), x3[8], NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x19))))), NULL, x3[8], 0, java.lang.Object(List(java.lang.Object(List(x19)))))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We solved constraint (29) using rules (I), (II), (III).We simplified constraint (30) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (31)    (Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x19)))=List(0) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x19)))), x3[8], NULL)≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x19)))), x3[8], NULL)≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x19))))), NULL, x3[8], 0, java.lang.Object(List(java.lang.Object(List(x19)))))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (28) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x14, x2[13])=List(x0[9]) which results in the following new constraints:

    (32)    (List(x25)=List(x0[9])∧>(x17, -1)=x23java.lang.Object(List(x16))=x24Cond_820_0_length_NULL(x23, x17, x24)=List(x0[9])∧0=x171=x251090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x16)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x16)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x16)), x3[8], x0[9], java.lang.Object(List(NULL)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (33)    (Cond_820_0_length_NULL(>(x27, -1), x27, java.lang.Object(List(x26)))=List(x0[9])∧>(x17, -1)=x23java.lang.Object(List(x16))=x24Cond_820_0_length_NULL(x23, x17, x24)=List(x0[9])∧0=x171=x271090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x26)))), x3[8], java.lang.Object(List(x16)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x26)))), x3[8], java.lang.Object(List(x16)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x26))))), java.lang.Object(List(x16)), x3[8], x0[9], java.lang.Object(List(java.lang.Object(List(x26)))))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (32) using rules (I), (II), (III), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (34)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x16)))=List(1) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x16)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x16)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x16)), x3[8], 1, java.lang.Object(List(NULL)))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (33) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (35)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x16)))=List(x0[9])∧Cond_820_0_length_NULL(TRUE, 1, java.lang.Object(List(x26)))=List(x0[9]) ⇒ 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x26)))), x3[8], java.lang.Object(List(x16)))≥NonInfC∧1090_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x26)))), x3[8], java.lang.Object(List(x16)))≥1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x26))))), java.lang.Object(List(x16)), x3[8], x0[9], java.lang.Object(List(java.lang.Object(List(x26)))))∧(UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (31) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (36)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[(-1)Bound*bni_88] + [bni_88]x3[8] ≥ 0∧[1 + (-1)bso_89] ≥ 0)



    We simplified constraint (34) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (37)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[(-1)Bound*bni_88] + [bni_88]x3[8] ≥ 0∧[1 + (-1)bso_89] ≥ 0)



    We simplified constraint (35) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (38)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[(-1)Bound*bni_88] + [bni_88]x3[8] ≥ 0∧[1 + (-1)bso_89] ≥ 0)



    We simplified constraint (37) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (39)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[(-1)Bound*bni_88] + [bni_88]x3[8] ≥ 0∧[1 + (-1)bso_89] ≥ 0)



    We simplified constraint (36) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (40)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[(-1)Bound*bni_88] + [bni_88]x3[8] ≥ 0∧[1 + (-1)bso_89] ≥ 0)



    We simplified constraint (38) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (41)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[(-1)Bound*bni_88] + [bni_88]x3[8] ≥ 0∧[1 + (-1)bso_89] ≥ 0)



    We simplified constraint (39) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (42)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[(-1)Bound*bni_88] + [bni_88]x3[8] ≥ 0∧[1 + (-1)bso_89] ≥ 0)



    We simplified constraint (40) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (43)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[(-1)Bound*bni_88] + [bni_88]x3[8] ≥ 0∧[1 + (-1)bso_89] ≥ 0)



    We simplified constraint (41) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (44)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[(-1)Bound*bni_88] + [bni_88]x3[8] ≥ 0∧[1 + (-1)bso_89] ≥ 0)



    We simplified constraint (42) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (45)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[bni_88] ≥ 0∧[(-1)Bound*bni_88] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_89] ≥ 0)



    We simplified constraint (43) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (46)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_88] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_88] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_89] ≥ 0)



    We simplified constraint (44) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (47)    ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[bni_88] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_88] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_89] ≥ 0)







For Pair COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]) the following chains were created:
  • We consider the chain 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]), COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]), 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]) which results in the following constraint:

    (48)    (<=(x4[7], x0[7])=TRUEList(x0[7])=List(x0[8])∧x1[7]=x1[8]x3[7]=x3[8]x4[7]=x4[8]x2[7]=x2[8]346_0_length_ConstantStackPush(x1[8])=List(x0[9])∧x2[8]=x2[9]x3[8]=x3[9]x1[8]=x1[9]COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (48) using rules (I), (II), (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (49)    (<=(x4[7], x0[7])=TRUE0=x30820_0_length_NULL(x30, x1[8])=List(x0[9]) ⇒ COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), x1[8], x3[7], x4[7], x2[7])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), x1[8], x3[7], x4[7], x2[7])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[7], x3[7], x1[8])∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (49) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x30, x1[8])=List(x0[9]) which results in the following new constraints:

    (50)    (List(x31)=List(x0[9])∧<=(x4[7], x0[7])=TRUE0=x31COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[7], x3[7], NULL)∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))


    (51)    (Cond_820_0_length_NULL(>(x33, -1), x33, java.lang.Object(List(x32)))=List(x0[9])∧<=(x4[7], x0[7])=TRUE0=x33COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x32)), x3[7], x4[7], x2[7])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x32)), x3[7], x4[7], x2[7])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x32))), x2[7], x3[7], java.lang.Object(List(x32)))∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (50) using rules (I), (II), (IV) which results in the following new constraint:

    (52)    (<=(x4[7], x0[7])=TRUECOND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[7], x3[7], NULL)∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (51) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (53)    (<=(x4[7], x0[7])=TRUECond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x32)))=List(x0[9]) ⇒ COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x32)), x3[7], x4[7], x2[7])≥NonInfC∧COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x32)), x3[7], x4[7], x2[7])≥1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x32))), x2[7], x3[7], java.lang.Object(List(x32)))∧(UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (52) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (54)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_90 + (-1)Bound*bni_90] + [bni_90]x2[7] + [bni_90]x3[7] ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (53) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (55)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_90 + (-1)Bound*bni_90] + [bni_90]x2[7] + [bni_90]x3[7] ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (54) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (56)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_90 + (-1)Bound*bni_90] + [bni_90]x2[7] + [bni_90]x3[7] ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (55) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (57)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_90 + (-1)Bound*bni_90] + [bni_90]x2[7] + [bni_90]x3[7] ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (56) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (58)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_90 + (-1)Bound*bni_90] + [bni_90]x2[7] + [bni_90]x3[7] ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (57) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (59)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_90 + (-1)Bound*bni_90] + [bni_90]x2[7] + [bni_90]x3[7] ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (58) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (60)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[bni_90] ≥ 0∧0 ≥ 0∧[bni_90] ≥ 0∧0 ≥ 0∧[(-1)bni_90 + (-1)Bound*bni_90] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (59) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (61)    (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[bni_90] ≥ 0∧0 ≥ 0∧[bni_90] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_90 + (-1)Bound*bni_90] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)







For Pair 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]) the following chains were created:
  • We consider the chain 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]), COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]) which results in the following constraint:

    (62)    (<=(x4[7], x0[7])=TRUEList(x0[7])=List(x0[8])∧x1[7]=x1[8]x3[7]=x3[8]x4[7]=x4[8]x2[7]=x2[8]1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥NonInfC∧1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])∧(UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥))



    We simplified constraint (62) using rules (I), (II), (IV) which results in the following new constraint:

    (63)    (<=(x4[7], x0[7])=TRUE1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥NonInfC∧1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])∧(UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥))



    We simplified constraint (63) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (64)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[(-1)bni_92 + (-1)Bound*bni_92] + [bni_92]x2[7] + [bni_92]x3[7] ≥ 0∧[(-1)bso_93] ≥ 0)



    We simplified constraint (64) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (65)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[(-1)bni_92 + (-1)Bound*bni_92] + [bni_92]x2[7] + [bni_92]x3[7] ≥ 0∧[(-1)bso_93] ≥ 0)



    We simplified constraint (65) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (66)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[(-1)bni_92 + (-1)Bound*bni_92] + [bni_92]x2[7] + [bni_92]x3[7] ≥ 0∧[(-1)bso_93] ≥ 0)



    We simplified constraint (66) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (67)    (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[bni_92] ≥ 0∧0 ≥ 0∧[bni_92] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_92 + (-1)Bound*bni_92] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_93] ≥ 0)







For Pair 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]) the following chains were created:
  • We consider the chain COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]), 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]), 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]) which results in the following constraint:

    (68)    (346_0_length_ConstantStackPush(x0[5])=List(x0[6])∧x1[5]=x2[6]x2[5]=x3[6]x0[5]=x1[6]346_0_length_ConstantStackPush(x2[6])=List(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x0[6]=x4[7]x2[6]=x2[7]1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (68) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (69)    (0=x36820_0_length_NULL(x36, x0[5])=List(x0[6])∧0=x37820_0_length_NULL(x37, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], x0[5])≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], x0[5])≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x0[5], x2[5], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (69) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x36, x0[5])=List(x0[6]) which results in the following new constraints:

    (70)    (List(x38)=List(x0[6])∧0=x380=x37820_0_length_NULL(x37, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), NULL, x2[5], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (71)    (Cond_820_0_length_NULL(>(x40, -1), x40, java.lang.Object(List(x39)))=List(x0[6])∧0=x400=x37820_0_length_NULL(x37, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x39)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x39)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x39)), x2[5], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (70) using rules (I), (II), (III) which results in the following new constraint:

    (72)    (0=x37820_0_length_NULL(x37, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(0), x2[6], x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), x2[6], x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), NULL, x2[5], 0, x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (71) using rule (VII) which results in the following new constraint:

    (73)    (>(x40, -1)=x46java.lang.Object(List(x39))=x47Cond_820_0_length_NULL(x46, x40, x47)=List(x0[6])∧0=x400=x37820_0_length_NULL(x37, x2[6])=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x39)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x39)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x39)), x2[5], x0[6], x2[6])∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (72) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x37, x2[6])=List(x0[7]) which results in the following new constraints:

    (74)    (List(x41)=List(x0[7])∧0=x411020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), NULL, x2[5], 0, NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (75)    (Cond_820_0_length_NULL(>(x43, -1), x43, java.lang.Object(List(x42)))=List(x0[7])∧0=x431020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x42)), x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x42)), x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x42))), NULL, x2[5], 0, java.lang.Object(List(x42)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (74) using rules (I), (II), (IV) which results in the following new constraint:

    (76)    (1020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), NULL, x2[5], 0, NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (75) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (77)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x42)))=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x42)), x2[5], NULL)≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x42)), x2[5], NULL)≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x42))), NULL, x2[5], 0, java.lang.Object(List(x42)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (76) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (78)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_94] = 0∧[(-1)bso_95] ≥ 0)



    We simplified constraint (73) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x37, x2[6])=List(x0[7]) which results in the following new constraints:

    (79)    (List(x48)=List(x0[7])∧>(x40, -1)=x46java.lang.Object(List(x39))=x47Cond_820_0_length_NULL(x46, x40, x47)=List(x0[6])∧0=x400=x481020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x39)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x39)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x39)), x2[5], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (80)    (Cond_820_0_length_NULL(>(x50, -1), x50, java.lang.Object(List(x49)))=List(x0[7])∧>(x40, -1)=x46java.lang.Object(List(x39))=x47Cond_820_0_length_NULL(x46, x40, x47)=List(x0[6])∧0=x400=x501020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x49)), x2[5], java.lang.Object(List(x39)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x49)), x2[5], java.lang.Object(List(x39)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x49))), java.lang.Object(List(x39)), x2[5], x0[6], java.lang.Object(List(x49)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (79) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (81)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x39)))=List(x0[6]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x39)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x39)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), java.lang.Object(List(x39)), x2[5], x0[6], NULL)∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (80) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (82)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x39)))=List(x0[6])∧Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x49)))=List(x0[7]) ⇒ 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x49)), x2[5], java.lang.Object(List(x39)))≥NonInfC∧1020_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x49)), x2[5], java.lang.Object(List(x39)))≥1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x49))), java.lang.Object(List(x39)), x2[5], x0[6], java.lang.Object(List(x49)))∧(UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (77) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (83)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_95] ≥ 0)



    We simplified constraint (81) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (84)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_95] ≥ 0)



    We simplified constraint (82) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (85)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_95] ≥ 0)



    We simplified constraint (78) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (86)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_94] = 0∧[(-1)bso_95] ≥ 0)



    We simplified constraint (84) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (87)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_95] ≥ 0)



    We simplified constraint (83) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (88)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_95] ≥ 0)



    We simplified constraint (85) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (89)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_95] ≥ 0)



    We simplified constraint (86) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (90)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_94] = 0∧[(-1)bso_95] ≥ 0)



    We simplified constraint (87) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (91)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_95] ≥ 0)



    We simplified constraint (88) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (92)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_95] ≥ 0)



    We simplified constraint (89) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (93)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_95] ≥ 0)



    We simplified constraint (90) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (94)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_94] = 0∧0 ≥ 0∧[(-1)bso_95] ≥ 0)



    We simplified constraint (91) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (95)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_95] ≥ 0)



    We simplified constraint (92) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (96)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_95] ≥ 0)



    We simplified constraint (93) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (97)    ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_95] ≥ 0)







For Pair COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]) the following chains were created:
  • We consider the chain 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]), COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]), 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]) which results in the following constraint:

    (98)    (>(x3[4], 0)=TRUEx0[4]=x0[5]x1[4]=x1[5]x2[4]=x2[5]x3[4]=x3[5]346_0_length_ConstantStackPush(x0[5])=List(x0[6])∧x1[5]=x2[6]x2[5]=x3[6]x0[5]=x1[6]COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5])≥NonInfC∧COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5])≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥))



    We simplified constraint (98) using rules (III), (IV), (REWRITING) which results in the following new constraint:

    (99)    (>(x3[4], 0)=TRUE820_0_length_NULL(0, x0[5])=List(x0[6]) ⇒ COND_923_0_MAIN_NE(TRUE, x0[5], x1[4], x2[4], x3[4])≥NonInfC∧COND_923_0_MAIN_NE(TRUE, x0[5], x1[4], x2[4], x3[4])≥1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[4], x2[4], x0[5])∧(UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥))



    We simplified constraint (99) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (100)    (0 ≥ 0 ⇒ (UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧[(-1)bni_96 + (-1)Bound*bni_96] + [bni_96]x2[4] + [bni_96]x1[4] ≥ 0∧[(-1)bso_97] ≥ 0)



    We simplified constraint (100) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (101)    (0 ≥ 0 ⇒ (UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧[(-1)bni_96 + (-1)Bound*bni_96] + [bni_96]x2[4] + [bni_96]x1[4] ≥ 0∧[(-1)bso_97] ≥ 0)



    We simplified constraint (101) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (102)    (0 ≥ 0 ⇒ (UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧[(-1)bni_96 + (-1)Bound*bni_96] + [bni_96]x2[4] + [bni_96]x1[4] ≥ 0∧[(-1)bso_97] ≥ 0)



    We simplified constraint (102) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (103)    (0 ≥ 0 ⇒ (UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧0 ≥ 0∧[bni_96] ≥ 0∧[bni_96] ≥ 0∧0 ≥ 0∧[(-1)bni_96 + (-1)Bound*bni_96] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_97] ≥ 0)







For Pair 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]) the following chains were created:
  • We consider the chain 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]), COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]) which results in the following constraint:

    (104)    (>(x3[4], 0)=TRUEx0[4]=x0[5]x1[4]=x1[5]x2[4]=x2[5]x3[4]=x3[5]923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥NonInfC∧923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])∧(UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥))



    We simplified constraint (104) using rule (IV) which results in the following new constraint:

    (105)    (>(x3[4], 0)=TRUE923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥NonInfC∧923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])∧(UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥))



    We simplified constraint (105) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (106)    (0 ≥ 0 ⇒ (UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧[(-1)bni_98 + (-1)Bound*bni_98] + [bni_98]x2[4] + [bni_98]x1[4] ≥ 0∧[(-1)bso_99] ≥ 0)



    We simplified constraint (106) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (107)    (0 ≥ 0 ⇒ (UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧[(-1)bni_98 + (-1)Bound*bni_98] + [bni_98]x2[4] + [bni_98]x1[4] ≥ 0∧[(-1)bso_99] ≥ 0)



    We simplified constraint (107) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (108)    (0 ≥ 0 ⇒ (UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧[(-1)bni_98 + (-1)Bound*bni_98] + [bni_98]x2[4] + [bni_98]x1[4] ≥ 0∧[(-1)bso_99] ≥ 0)



    We simplified constraint (108) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (109)    (0 ≥ 0 ⇒ (UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧0 ≥ 0∧[bni_98] ≥ 0∧[bni_98] ≥ 0∧0 ≥ 0∧[(-1)bni_98 + (-1)Bound*bni_98] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_99] ≥ 0)







For Pair 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]) the following chains were created:
  • We consider the chain 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]), 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]), 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]) which results in the following constraint:

    (110)    (346_0_length_ConstantStackPush(x3[2])=List(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]x3[2]=x3[3]x1[3]=x0[4]x2[3]=x1[4]x3[3]=x2[4]fresh2[3]=x3[4]896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3])≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3])≥923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (110) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (111)    (0=x53820_0_length_NULL(x53, x3[2])=List(x0[3]) ⇒ 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], x3[2])≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], x3[2])≥923_0_MAIN_NE(x1[2], x2[2], x3[2], fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (111) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x53, x3[2])=List(x0[3]) which results in the following new constraints:

    (112)    (List(x54)=List(x0[3])∧0=x54896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], NULL)≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], NULL)≥923_0_MAIN_NE(x1[2], x2[2], NULL, fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))


    (113)    (Cond_820_0_length_NULL(>(x56, -1), x56, java.lang.Object(List(x55)))=List(x0[3])∧0=x56896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x55)))≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x55)))≥923_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(x55)), fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (112) using rules (I), (II), (III) which results in the following new constraint:

    (114)    (896_1_MAIN_INVOKEMETHOD(List(0), x1[2], x2[2], NULL)≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(0), x1[2], x2[2], NULL)≥923_0_MAIN_NE(x1[2], x2[2], NULL, fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (113) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (115)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x55)))=List(x0[3]) ⇒ 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x55)))≥NonInfC∧896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x55)))≥923_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(x55)), fresh2[3])∧(UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (114) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (116)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_100] = 0∧[(-1)bso_101] ≥ 0)



    We simplified constraint (115) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (117)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_101] ≥ 0)



    We simplified constraint (116) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (118)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_100] = 0∧[(-1)bso_101] ≥ 0)



    We simplified constraint (117) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (119)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_101] ≥ 0)



    We simplified constraint (118) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (120)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_100] = 0∧[(-1)bso_101] ≥ 0)



    We simplified constraint (119) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (121)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_101] ≥ 0)



    We simplified constraint (120) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (122)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_100] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_101] ≥ 0)



    We simplified constraint (121) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (123)    ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_101] ≥ 0)







For Pair 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]) the following chains were created:
  • We consider the chain COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]), 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]), 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]) which results in the following constraint:

    (124)    (346_0_length_ConstantStackPush(x3[1])=List(x0[2])∧x2[1]=x1[2]x1[1]=x3[2]x3[1]=x2[2]346_0_length_ConstantStackPush(x3[2])=List(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]x3[2]=x3[3]845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2])≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2])≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (124) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (125)    (0=x59820_0_length_NULL(x59, x3[1])=List(x0[2])∧0=x60820_0_length_NULL(x60, x3[2])=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], x3[1])≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], x3[1])≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x2[1], x3[1], x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (125) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x59, x3[1])=List(x0[2]) which results in the following new constraints:

    (126)    (List(x61)=List(x0[2])∧0=x610=x60820_0_length_NULL(x60, x3[2])=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x2[1], NULL, x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))


    (127)    (Cond_820_0_length_NULL(>(x63, -1), x63, java.lang.Object(List(x62)))=List(x0[2])∧0=x630=x60820_0_length_NULL(x60, x3[2])=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x62)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x62)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x2[1], java.lang.Object(List(x62)), x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (126) using rules (I), (II), (III) which results in the following new constraint:

    (128)    (0=x60820_0_length_NULL(x60, x3[2])=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(0), x2[1], x3[2], NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], x3[2], NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x2[1], NULL, x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (127) using rule (VII) which results in the following new constraint:

    (129)    (>(x63, -1)=x69java.lang.Object(List(x62))=x70Cond_820_0_length_NULL(x69, x63, x70)=List(x0[2])∧0=x630=x60820_0_length_NULL(x60, x3[2])=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x62)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x62)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x2[1], java.lang.Object(List(x62)), x3[2])∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (128) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x60, x3[2])=List(x0[3]) which results in the following new constraints:

    (130)    (List(x64)=List(x0[3])∧0=x64845_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[1], NULL, NULL)∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))


    (131)    (Cond_820_0_length_NULL(>(x66, -1), x66, java.lang.Object(List(x65)))=List(x0[3])∧0=x66845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x65)), NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x65)), NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x65))), x2[1], NULL, java.lang.Object(List(x65)))∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (130) using rules (I), (II), (IV) which results in the following new constraint:

    (132)    (845_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[1], NULL, NULL)∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (131) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (133)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x65)))=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x65)), NULL)≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x65)), NULL)≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x65))), x2[1], NULL, java.lang.Object(List(x65)))∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (132) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (134)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_102] = 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (129) using rule (V) (with possible (I) afterwards) using induction on 820_0_length_NULL(x60, x3[2])=List(x0[3]) which results in the following new constraints:

    (135)    (List(x71)=List(x0[3])∧>(x63, -1)=x69java.lang.Object(List(x62))=x70Cond_820_0_length_NULL(x69, x63, x70)=List(x0[2])∧0=x630=x71845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x62)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x62)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[1], java.lang.Object(List(x62)), NULL)∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))


    (136)    (Cond_820_0_length_NULL(>(x73, -1), x73, java.lang.Object(List(x72)))=List(x0[3])∧>(x63, -1)=x69java.lang.Object(List(x62))=x70Cond_820_0_length_NULL(x69, x63, x70)=List(x0[2])∧0=x630=x73845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x72)), java.lang.Object(List(x62)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x72)), java.lang.Object(List(x62)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x72))), x2[1], java.lang.Object(List(x62)), java.lang.Object(List(x72)))∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (135) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (137)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x62)))=List(x0[2]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x62)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x62)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[1], java.lang.Object(List(x62)), NULL)∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (136) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (138)    (Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x62)))=List(x0[2])∧Cond_820_0_length_NULL(TRUE, 0, java.lang.Object(List(x72)))=List(x0[3]) ⇒ 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x72)), java.lang.Object(List(x62)))≥NonInfC∧845_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x72)), java.lang.Object(List(x62)))≥896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x72))), x2[1], java.lang.Object(List(x62)), java.lang.Object(List(x72)))∧(UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (133) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (139)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (137) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (140)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (138) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (141)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (134) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (142)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_102] = 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (140) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (143)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (139) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (144)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (141) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (145)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (142) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (146)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_102] = 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (143) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (147)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (144) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (148)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (145) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (149)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (146) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (150)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_102] = 0∧0 ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (147) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (151)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (148) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (152)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (149) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (153)    ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_103] ≥ 0)







For Pair COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]) the following chains were created:
  • We consider the chain 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]), COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]), 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]) which results in the following constraint:

    (154)    (>(x0[0], 0)=TRUEList(x0[0])=List(x0[1])∧x2[0]=x2[1]x3[0]=x3[1]x1[0]=x1[1]346_0_length_ConstantStackPush(x3[1])=List(x0[2])∧x2[1]=x1[2]x1[1]=x3[2]x3[1]=x2[2]COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1])≥NonInfC∧COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1])≥845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])∧(UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥))



    We simplified constraint (154) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (155)    (>(x0[0], 0)=TRUE820_0_length_NULL(0, x3[1])=List(x0[2]) ⇒ COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[0]), x2[0], x3[1], x1[0])≥NonInfC∧COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[0]), x2[0], x3[1], x1[0])≥845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[0], x1[0], x3[1])∧(UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥))



    We simplified constraint (155) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (156)    (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)bni_104 + (-1)Bound*bni_104] + [bni_104]x1[0] + [bni_104]x3[1] ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (156) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (157)    (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)bni_104 + (-1)Bound*bni_104] + [bni_104]x1[0] + [bni_104]x3[1] ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (157) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (158)    (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)bni_104 + (-1)Bound*bni_104] + [bni_104]x1[0] + [bni_104]x3[1] ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (158) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (159)    (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[bni_104] ≥ 0∧[bni_104] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_104 + (-1)Bound*bni_104] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)







For Pair 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) the following chains were created:
  • We consider the chain 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]), COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]) which results in the following constraint:

    (160)    (>(x0[0], 0)=TRUEList(x0[0])=List(x0[1])∧x2[0]=x2[1]x3[0]=x3[1]x1[0]=x1[1]346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])∧(UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥))



    We simplified constraint (160) using rules (I), (II), (IV) which results in the following new constraint:

    (161)    (>(x0[0], 0)=TRUE346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])∧(UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥))



    We simplified constraint (161) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (162)    (0 ≥ 0 ⇒ (UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[(-1)bni_106 + (-1)Bound*bni_106] + [bni_106]x1[0] + [bni_106]x3[0] ≥ 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (162) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (163)    (0 ≥ 0 ⇒ (UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[(-1)bni_106 + (-1)Bound*bni_106] + [bni_106]x1[0] + [bni_106]x3[0] ≥ 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (163) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (164)    (0 ≥ 0 ⇒ (UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[(-1)bni_106 + (-1)Bound*bni_106] + [bni_106]x1[0] + [bni_106]x3[0] ≥ 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (164) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (165)    (0 ≥ 0 ⇒ (UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[bni_106] ≥ 0∧[bni_106] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_106 + (-1)Bound*bni_106] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)







For Pair 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) the following chains were created:
  • We consider the chain 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13]), 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]), 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) which results in the following constraint:

    (166)    (1275_0_test_Load(x1[13])=1522_0_test_Returnx1[13]=x0[12]x2[13]=x1[12]x3[13]=x2[12]346_0_length_ConstantStackPush(x0[12])=List(x0[0])∧x1[12]=x2[0]x2[12]=x3[0]x0[12]=x1[0]1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (166) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (167)    (1518_0_test_NULL(x1[13])=1522_0_test_Return0=x76820_0_length_NULL(x76, x1[13])=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x1[13], x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x1[13], x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (167) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[13])=1522_0_test_Return which results in the following new constraints:

    (168)    (1522_0_test_Return=1522_0_test_Return0=x76820_0_length_NULL(x76, NULL)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[13], x3[13], NULL)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))


    (169)    (1518_0_test_NULL(x77)=1522_0_test_Return0=x76820_0_length_NULL(x76, java.lang.Object(List(x77)))=List(x0[0])∧(∀x78,x79,x80,x81:1518_0_test_NULL(x77)=1522_0_test_Return0=x78820_0_length_NULL(x78, x77)=List(x79) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x77, x80, x81)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x77, x80, x81)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x77), x80, x81, x77)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x77)), x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x77)), x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x77))), x2[13], x3[13], java.lang.Object(List(x77)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (168) using rules (I), (II), (IV), (REWRITING) which results in the following new constraint:

    (170)    (1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, NULL, x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(NULL), x2[13], x3[13], NULL)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (169) using rules (VII), (REWRITING) which results in the following new constraint:

    (171)    (1518_0_test_NULL(x77)=1522_0_test_Return0=x76∧(∀x78,x79,x80,x81:1518_0_test_NULL(x77)=1522_0_test_Return0=x78820_0_length_NULL(x78, x77)=List(x79) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x77, x80, x81)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x77, x80, x81)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x77), x80, x81, x77)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x76, -1)=x85java.lang.Object(List(x77))=x86Cond_820_0_length_NULL(x85, x76, x86)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x77)), x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x77)), x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x77))), x2[13], x3[13], java.lang.Object(List(x77)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (170) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (172)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_108] = 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (171) using rule (V) (with possible (I) afterwards) using induction on Cond_820_0_length_NULL(x85, x76, x86)=List(x0[0]) which results in the following new constraint:

    (173)    (820_0_length_NULL(+(x88, 1), x87)=List(x0[0])∧1518_0_test_NULL(x77)=1522_0_test_Return0=x88∧(∀x78,x79,x80,x81:1518_0_test_NULL(x77)=1522_0_test_Return0=x78820_0_length_NULL(x78, x77)=List(x79) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x77, x80, x81)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x77, x80, x81)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x77), x80, x81, x77)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x88, -1)=TRUEjava.lang.Object(List(x77))=java.lang.Object(List(x87)) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x77)), x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x77)), x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x77))), x2[13], x3[13], java.lang.Object(List(x77)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (173) using rules (I), (II), (III), (VII), (IDP_CONSTANT_FOLD), (DELETE_TRIVIAL_REDUCESTO) which results in the following new constraint:

    (174)    (1518_0_test_NULL(x87)=1522_0_test_Return∧(∀x78,x79,x80,x81:1518_0_test_NULL(x87)=1522_0_test_Return0=x78820_0_length_NULL(x78, x87)=List(x79) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x87, x80, x81)≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x87, x80, x81)≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x87), x80, x81, x87)∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧820_0_length_NULL(1, x87)=List(x0[0]) ⇒ 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x87)), x2[13], x3[13])≥NonInfC∧1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, java.lang.Object(List(x87)), x2[13], x3[13])≥346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(java.lang.Object(List(x87))), x2[13], x3[13], java.lang.Object(List(x87)))∧(UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (174) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (175)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (172) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (176)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_108] = 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (175) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (177)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (176) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (178)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_108] = 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (177) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (179)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (178) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (180)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_108] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (179) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (181)    ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
    • ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_86] = 0∧0 ≥ 0∧[(-1)bso_87] ≥ 0)
    • ((UIncreasing(1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_87] ≥ 0)

  • 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[bni_88] ≥ 0∧[(-1)Bound*bni_88] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_89] ≥ 0)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_88] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_88] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_89] ≥ 0)
    • ((UIncreasing(1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[bni_88] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_88] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_89] ≥ 0)

  • COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
    • (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[bni_90] ≥ 0∧0 ≥ 0∧[bni_90] ≥ 0∧0 ≥ 0∧[(-1)bni_90 + (-1)Bound*bni_90] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[bni_90] ≥ 0∧0 ≥ 0∧[bni_90] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_90 + (-1)Bound*bni_90] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)

  • 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[bni_92] ≥ 0∧0 ≥ 0∧[bni_92] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_92 + (-1)Bound*bni_92] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_93] ≥ 0)

  • 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_94] = 0∧0 ≥ 0∧[(-1)bso_95] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_95] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_95] ≥ 0)
    • ((UIncreasing(1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_95] ≥ 0)

  • COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
    • (0 ≥ 0 ⇒ (UIncreasing(1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧0 ≥ 0∧[bni_96] ≥ 0∧[bni_96] ≥ 0∧0 ≥ 0∧[(-1)bni_96 + (-1)Bound*bni_96] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_97] ≥ 0)

  • 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧0 ≥ 0∧[bni_98] ≥ 0∧[bni_98] ≥ 0∧0 ≥ 0∧[(-1)bni_98 + (-1)Bound*bni_98] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_99] ≥ 0)

  • 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
    • ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_100] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_101] ≥ 0)
    • ((UIncreasing(923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_101] ≥ 0)

  • 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
    • ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_102] = 0∧0 ≥ 0∧[(-1)bso_103] ≥ 0)
    • ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_103] ≥ 0)
    • ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_103] ≥ 0)
    • ((UIncreasing(896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_103] ≥ 0)

  • COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
    • (0 ≥ 0 ⇒ (UIncreasing(845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[bni_104] ≥ 0∧[bni_104] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_104 + (-1)Bound*bni_104] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)

  • 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[bni_106] ≥ 0∧[bni_106] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_106 + (-1)Bound*bni_106] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

  • 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
    • ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_108] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)
    • ((UIncreasing(346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers with natural coefficients for non-tuple symbols [NONINF][POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(346_0_length_ConstantStackPush(x1)) = 0   
POL(820_0_length_NULL(x1, x2)) = 0   
POL(0) = 0   
POL(1275_0_test_Load(x1)) = 0   
POL(1518_0_test_NULL(x1)) = 0   
POL(NULL) = 0   
POL(List(x1)) = 0   
POL(java.lang.Object(x1)) = [1]   
POL(Cond_820_0_length_NULL(x1, x2, x3)) = 0   
POL(>(x1, x2)) = 0   
POL(-1) = 0   
POL(+(x1, x2)) = 0   
POL(1) = 0   
POL(1522_0_test_Return) = 0   
POL(1113_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1]x5 + x3 + [-1]x1   
POL(1275_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + x2 + [-1]x1   
POL(1090_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x3 + x2 + [-1]x1   
POL(COND_1050_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + x4 + [-1]x2   
POL(1050_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x5 + x3 + [-1]x1   
POL(<=(x1, x2)) = 0   
POL(1020_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x3 + x2 + [-1]x1   
POL(COND_923_0_MAIN_NE(x1, x2, x3, x4, x5)) = [-1] + x4 + x3   
POL(923_0_MAIN_NE(x1, x2, x3, x4)) = [-1] + x3 + x2   
POL(896_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + x3 + [-1]x1   
POL(845_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + x3 + [-1]x1   
POL(COND_346_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x5 + x4 + [-1]x2   
POL(346_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + x3 + [-1]x1   

The following pairs are in P>:

1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])

The following pairs are in Pbound:

1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])
COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])
COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])

The following pairs are in P:

1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])
1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])
896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])
1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])

At least the following rules have been oriented under context sensitive arithmetic replacement:

1275_0_test_Load(x0)11518_0_test_NULL(x0)1
1518_0_test_NULL(NULL)11522_0_test_Return1
1518_0_test_NULL(java.lang.Object(List(x0)))11518_0_test_NULL(x0)1
346_0_length_ConstantStackPush(x0)1820_0_length_NULL(0, x0)1
820_0_length_NULL(x0, NULL)1List(x0)1
820_0_length_NULL(x1, java.lang.Object(List(x0)))1Cond_820_0_length_NULL(>(x1, -1), x1, java.lang.Object(List(x0)))1
Cond_820_0_length_NULL(TRUE, x1, java.lang.Object(List(x0)))1820_0_length_NULL(+(x1, 1), x0)1

(53) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


The ITRS R consists of the following rules:
346_0_length_ConstantStackPush(x0) → 820_0_length_NULL(0, x0)
1275_0_test_Load(x0) → 1518_0_test_NULL(x0)
820_0_length_NULL(x0, NULL) → List(x0)
820_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_820_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_820_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 820_0_length_NULL(x1 + 1, x0)
1518_0_test_NULL(NULL) → 1522_0_test_Return
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)

The integer pair graph contains the following rules and edges:
(13): 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
(8): COND_1050_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1090_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
(7): 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(x4[7] <= x0[7], List(x0[7]), x1[7], x3[7], x4[7], x2[7])
(6): 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
(5): COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
(4): 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(x3[4] > 0, x0[4], x1[4], x2[4], x3[4])
(3): 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
(2): 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
(1): COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
(0): 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(x0[0] > 0, List(x0[0]), x2[0], x3[0], x1[0])
(12): 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])

(12) -> (0), if (346_0_length_ConstantStackPush(x0[12]) →* List(x0[0])∧x1[12]* x2[0]x2[12]* x3[0]x0[12]* x1[0])


(0) -> (1), if (x0[0] > 0List(x0[0]) →* List(x0[1])∧x2[0]* x2[1]x3[0]* x3[1]x1[0]* x1[1])


(1) -> (2), if (346_0_length_ConstantStackPush(x3[1]) →* List(x0[2])∧x2[1]* x1[2]x1[1]* x3[2]x3[1]* x2[2])


(2) -> (3), if (346_0_length_ConstantStackPush(x3[2]) →* List(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x3[2]* x3[3])


(3) -> (4), if (x1[3]* x0[4]x2[3]* x1[4]x3[3]* x2[4]fresh2[3]* x3[4])


(4) -> (5), if (x3[4] > 0x0[4]* x0[5]x1[4]* x1[5]x2[4]* x2[5]x3[4]* x3[5])


(5) -> (6), if (346_0_length_ConstantStackPush(x0[5]) →* List(x0[6])∧x1[5]* x2[6]x2[5]* x3[6]x0[5]* x1[6])


(6) -> (7), if (346_0_length_ConstantStackPush(x2[6]) →* List(x0[7])∧x1[6]* x1[7]x3[6]* x3[7]x0[6]* x4[7]x2[6]* x2[7])


(7) -> (8), if (x4[7] <= x0[7]List(x0[7]) →* List(x0[8])∧x1[7]* x1[8]x3[7]* x3[8]x4[7]* x4[8]x2[7]* x2[8])


(13) -> (12), if (1275_0_test_Load(x1[13]) →* 1522_0_test_Returnx1[13]* x0[12]x2[13]* x1[12]x3[13]* x2[12])



The set Q consists of the following terms:
346_0_length_ConstantStackPush(x0)
937_0_length_ConstantStackPush(java.lang.Object(List(x0)))
820_0_length_NULL(x0, NULL)
820_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_820_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))
1275_0_test_Load(x0)
1518_0_test_NULL(NULL)
1518_0_test_NULL(java.lang.Object(List(x0)))

(54) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 11 less nodes.

(55) TRUE

(56) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
346_0_length_ConstantStackPush(x0) → 820_0_length_NULL(0, x0)
1275_0_test_Load(x0) → 1518_0_test_NULL(x0)
820_0_length_NULL(x0, NULL) → List(x0)
820_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_820_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_820_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 820_0_length_NULL(x1 + 1, x0)
1518_0_test_NULL(NULL) → 1522_0_test_Return
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)

The integer pair graph contains the following rules and edges:
(11): COND_1113_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
(10): 1113_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1113_1_MAIN_INVOKEMETHOD(!(x4[10] = x0[10]), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
(9): 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
(7): 1050_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1050_1_MAIN_INVOKEMETHOD(x4[7] <= x0[7], List(x0[7]), x1[7], x3[7], x4[7], x2[7])
(6): 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
(5): COND_923_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
(4): 923_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_923_0_MAIN_NE(x3[4] > 0, x0[4], x1[4], x2[4], x3[4])
(3): 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
(2): 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
(1): COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
(0): 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(x0[0] > 0, List(x0[0]), x2[0], x3[0], x1[0])
(12): 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
(13): 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])

(12) -> (0), if (346_0_length_ConstantStackPush(x0[12]) →* List(x0[0])∧x1[12]* x2[0]x2[12]* x3[0]x0[12]* x1[0])


(0) -> (1), if (x0[0] > 0List(x0[0]) →* List(x0[1])∧x2[0]* x2[1]x3[0]* x3[1]x1[0]* x1[1])


(1) -> (2), if (346_0_length_ConstantStackPush(x3[1]) →* List(x0[2])∧x2[1]* x1[2]x1[1]* x3[2]x3[1]* x2[2])


(2) -> (3), if (346_0_length_ConstantStackPush(x3[2]) →* List(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x3[2]* x3[3])


(3) -> (4), if (x1[3]* x0[4]x2[3]* x1[4]x3[3]* x2[4]fresh2[3]* x3[4])


(4) -> (5), if (x3[4] > 0x0[4]* x0[5]x1[4]* x1[5]x2[4]* x2[5]x3[4]* x3[5])


(5) -> (6), if (346_0_length_ConstantStackPush(x0[5]) →* List(x0[6])∧x1[5]* x2[6]x2[5]* x3[6]x0[5]* x1[6])


(6) -> (7), if (346_0_length_ConstantStackPush(x2[6]) →* List(x0[7])∧x1[6]* x1[7]x3[6]* x3[7]x0[6]* x4[7]x2[6]* x2[7])


(9) -> (10), if (346_0_length_ConstantStackPush(x2[9]) →* List(x0[10])∧x1[9]* x1[10]x3[9]* java.lang.Object(List(x3[10]))∧x0[9]* x4[10]x2[9]* x2[10])


(10) -> (11), if (!(x4[10] = x0[10]) ∧List(x0[10]) →* List(x0[11])∧x1[10]* x1[11]java.lang.Object(List(x3[10])) →* java.lang.Object(List(x3[11]))∧x4[10]* x4[11]x2[10]* x2[11])


(11) -> (12), if (1275_0_test_Load(x1[11]) →* 1522_0_test_Returnx1[11]* x0[12]x2[11]* x1[12]x3[11]* x2[12])


(13) -> (12), if (1275_0_test_Load(x1[13]) →* 1522_0_test_Returnx1[13]* x0[12]x2[13]* x1[12]x3[13]* x2[12])


(9) -> (13), if (346_0_length_ConstantStackPush(x2[9]) →* List(x0[13])∧x1[9]* x1[13]x3[9]* x3[13]x0[9]* x0[13]x2[9]* java.lang.Object(List(x2[13])))



The set Q consists of the following terms:
346_0_length_ConstantStackPush(x0)
937_0_length_ConstantStackPush(java.lang.Object(List(x0)))
820_0_length_NULL(x0, NULL)
820_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_820_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))
1275_0_test_Load(x0)
1518_0_test_NULL(NULL)
1518_0_test_NULL(java.lang.Object(List(x0)))

(57) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 13 less nodes.

(58) TRUE

(59) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


The ITRS R consists of the following rules:
346_0_length_ConstantStackPush(x0) → 820_0_length_NULL(0, x0)
1275_0_test_Load(x0) → 1518_0_test_NULL(x0)
820_0_length_NULL(x0, NULL) → List(x0)
820_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_820_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_820_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 820_0_length_NULL(x1 + 1, x0)
1518_0_test_NULL(NULL) → 1522_0_test_Return
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)

The integer pair graph contains the following rules and edges:
(16): 923_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])
(13): 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
(12): 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
(9): 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
(6): 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
(3): 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
(2): 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])

(2) -> (3), if (346_0_length_ConstantStackPush(x3[2]) →* List(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x3[2]* x3[3])


(16) -> (6), if (346_0_length_ConstantStackPush(x0[16]) →* List(x0[6])∧x1[16]* x2[6]x2[16]* x3[6]x0[16]* x1[6])


(13) -> (12), if (1275_0_test_Load(x1[13]) →* 1522_0_test_Returnx1[13]* x0[12]x2[13]* x1[12]x3[13]* x2[12])


(9) -> (13), if (346_0_length_ConstantStackPush(x2[9]) →* List(x0[13])∧x1[9]* x1[13]x3[9]* x3[13]x0[9]* x0[13]x2[9]* java.lang.Object(List(x2[13])))


(3) -> (16), if (x1[3]* x0[16]x2[3]* x1[16]x3[3]* java.lang.Object(List(x2[16]))∧fresh2[3]* 0)



The set Q consists of the following terms:
346_0_length_ConstantStackPush(x0)
937_0_length_ConstantStackPush(java.lang.Object(List(x0)))
820_0_length_NULL(x0, NULL)
820_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_820_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))
1275_0_test_Load(x0)
1518_0_test_NULL(NULL)
1518_0_test_NULL(java.lang.Object(List(x0)))

(60) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 7 less nodes.

(61) TRUE

(62) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


The ITRS R consists of the following rules:
346_0_length_ConstantStackPush(x0) → 820_0_length_NULL(0, x0)
937_0_length_ConstantStackPush(java.lang.Object(List(x0))) → 820_0_length_NULL(0, java.lang.Object(List(x0)))
820_0_length_NULL(x0, NULL) → List(x0)
820_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_820_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_820_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 820_0_length_NULL(x1 + 1, x0)
1275_0_test_Load(x0) → 1518_0_test_NULL(x0)
1518_0_test_NULL(NULL) → 1522_0_test_Return
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)

The integer pair graph contains the following rules and edges:
(0): 346_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_346_1_MAIN_INVOKEMETHOD(x0[0] > 0, List(x0[0]), x2[0], x3[0], x1[0])
(1): COND_346_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 845_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
(2): 845_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 896_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
(3): 896_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 923_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
(6): 1020_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1050_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
(9): 1090_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1113_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
(12): 1275_1_MAIN_INVOKEMETHOD(1522_0_test_Return, x0[12], x1[12], x2[12]) → 346_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
(13): 1113_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1275_1_MAIN_INVOKEMETHOD(1275_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
(16): 923_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1020_1_MAIN_INVOKEMETHOD(346_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])
(17): 845_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17]) → 937_1_MAIN_INVOKEMETHOD(937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))
(18): 937_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18]))) → 923_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])

(12) -> (0), if (346_0_length_ConstantStackPush(x0[12]) →* List(x0[0])∧x1[12]* x2[0]x2[12]* x3[0]x0[12]* x1[0])


(0) -> (1), if (x0[0] > 0List(x0[0]) →* List(x0[1])∧x2[0]* x2[1]x3[0]* x3[1]x1[0]* x1[1])


(1) -> (2), if (346_0_length_ConstantStackPush(x3[1]) →* List(x0[2])∧x2[1]* x1[2]x1[1]* x3[2]x3[1]* x2[2])


(2) -> (3), if (346_0_length_ConstantStackPush(x3[2]) →* List(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x3[2]* x3[3])


(16) -> (6), if (346_0_length_ConstantStackPush(x0[16]) →* List(x0[6])∧x1[16]* x2[6]x2[16]* x3[6]x0[16]* x1[6])


(13) -> (12), if (1275_0_test_Load(x1[13]) →* 1522_0_test_Returnx1[13]* x0[12]x2[13]* x1[12]x3[13]* x2[12])


(9) -> (13), if (346_0_length_ConstantStackPush(x2[9]) →* List(x0[13])∧x1[9]* x1[13]x3[9]* x3[13]x0[9]* x0[13]x2[9]* java.lang.Object(List(x2[13])))


(3) -> (16), if (x1[3]* x0[16]x2[3]* x1[16]x3[3]* java.lang.Object(List(x2[16]))∧fresh2[3]* 0)


(18) -> (16), if (x1[18]* x0[16]x2[18]* x1[16]java.lang.Object(List(x3[18])) →* java.lang.Object(List(x2[16]))∧fresh2[18]* 0)


(1) -> (17), if (346_0_length_ConstantStackPush(x3[1]) →* List(x0[17])∧x2[1]* x1[17]x1[1]* java.lang.Object(List(x3[17]))∧x3[1]* x2[17])


(17) -> (18), if (937_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))) →* List(x0[18])∧x1[17]* x1[18]x2[17]* x2[18]java.lang.Object(List(x3[17])) →* java.lang.Object(List(x3[18])))



The set Q consists of the following terms:
346_0_length_ConstantStackPush(x0)
937_0_length_ConstantStackPush(java.lang.Object(List(x0)))
820_0_length_NULL(x0, NULL)
820_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_820_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))
1275_0_test_Load(x0)
1518_0_test_NULL(NULL)
1518_0_test_NULL(java.lang.Object(List(x0)))

(63) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 11 less nodes.

(64) TRUE